|
.NET'in CLR, CTS ve JIT derleyicileri |
|
Gönderiliyor lütfen bekleyin... |
|
|
Önceki
yazımızda "dot NET" platformu konusuna giriş yapmıştık.(Yazıyı okumak için tıklayın) Burada ise daha detaylı olarak
.NET kavramlarını inceleyeceğiz ve .NET'le Java'nın karşılaştırıldığı bir testin
sonuçlarına yer vereceğiz.
.NET platformunda istediğimiz programlama dili
ile program yazabileceğimizi önceki yazımızda söylemiştik. Bunun için tek şart,
kullandığımız dilin .NET için yazılmış olan bir derleyicisine ihtiyacımız
olduğudur. .NET uyumlu programlama dili oluştururken belirli standartlara uyulması
gerekir. Bu standartlar CLS (Common Language Specifications - Dillerin
ortak özellikleri) ile belirlenmiştir. CTS(Common Type System) ise veri tipleri,
nesneler, arayüzler ve programlama dillerine ait özellikleri tanımlar ve CLS'in
bir parçası olarak karşımıza çıkar.
CLS'de tanımlanmış kurallara uymak şartı ile istersek kendi programlama
dilimizi dahi geliştirebiliriz veya herhangi bir dili .NET platformunda uygulama
geliştirmek üzere değiştirebiliriz.
CLR
,programlarımızı değişik şekilde derleyebilir. Varsayılan derleme türü JIT(Just IN TIME- çalışam anında derleme) 'dır.
Program çalışırken daha önce derlenmemiş bir parçasına gelince hemen o kısmı da derler ve bunu hafızda chach'e koyar. Tekrar
aynı program parçasını çalıştırmak gerekirse burayı hafızadan çalıştırır. Eğer
RAM 'imizi yeteri kadar büyükse, programın tamamı derlenmiş ve hafızada
depolanmış durumda olabilir. Bu durumda programımız çok hızlı çalışır.
Hafızamızın
yeteri
kadar büyük olmadığı durumlarda EconoJIT (Ekonomik JIT) derleyicisini kullanabiliriz. Bu derleyici ile programın derlenmiş
kısımları hafızada depolanmaz ve her seferinde aynı program parçası derlenir. Tabi ki bu derleyici normal
JIT'e göre programlarımızı daha yavaş çalıştırır. Ama RAM 'imizi çok daha az kullanır.
CLR ile gelen üçüncü derleyicimiz PreJIT(ön JIT derleyicisi) ise derleme işini program çalışmadan önce yapar ve
tüm makine kodlarını bir yerde saklar. Çalışma anında çok hızlı olan programımız diğer JIT derleyicileriyle derlenmiş
olanlara nazaran çok hızlı çalışır.
Kolayca görebileceğimiz birkaç noktaya da parmak
basmak istiyorum. .NET ile yazdığınız programlar diğerlerine göre yavaş çalışır.
Çünkü iki defa derleme aşamasından geçerler, program kodu MSIL'ye, MSIL ise makine
koduna çevrilir. Diğer taraftan .NET ile programlarımız platform bağımsız olacak,
.NET uyumlu herhangi bir dil ile program geliştirebileceğiz ve programımız CLR
altında daha güvenli bir şekilde çalışacaktır.
.NET perfromans testi
linkindeki sonuçlara göre : Genelde C# Java'dan 3.30 kat daha hızlı. C# Visual C++ 6.0'dan ise 3.11 kat daha hızlı
çalışıyor. Hatta VB.NET kodu VB 6.0'a nazaran 46.45 kat daha hızlı çalışıyor. :-)
Makale:
.NET'in CLR, CTS ve JIT derleyicileri C#, Visual C# ve .NET Ahmet Faruk Nacaroğlu
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|