Aradil "Intermediate Language"(IL) ve JIT (Just in Time)
Aradil "Intermediate Language"(IL) ve JIT (Just in Time)
Administrator tarafından yazıldı
Pazar, 20 Eylül 2009 20:32
Herhangi bir C++ veya Vbasic kodu direkt makine koduna çevrilirdi ve çalıştırılırdı. Makine diline çevrilen programlar, işlemciye ve işletim sistemine özel olarak derlenirdi.
Örn: a ve b sayılarının toplamı için kullanılan bir C++ programı Intel işlemciler için farklı SunSparc işlemciler için farklı derlenirdi
Fakat .NET ortamında kodumuzu derlediğimizde elde ettiğimiz IL (aradil) kodu işlemciye bağlı olmaz
IL içerisinde, değişken tanımları, değişkenlerin nasıl saklanacağı,
metotların nasıl çalıştırılacağı, aritmetik işlemler, mantıksal işlemler,
bellek kullanımı ve hata yakalama ve yönetimi dahil birçok işin nasıl
yapılacağı açıklanır
Bütün bunların yanında IL’de Metadata olarak adlandırılan bir birim
daha vardır. Metadata, programda kullanılan verilerin tiplerinin yanında
oluşturulan sınıfların metotlarını ve bunların özelliklerini ve diğer
bilgileri içerir.
Artık IL ile oluşturduğumuz kodumuzun çalıştırılabilir bir program olması için derlememiz gerekiyor. Bunun için JIT (Just in Time) derleyici kullanılır.
JIT Derleyicileri
Metadata’nın içeriği çalışma zamanında JIT derleyicileri tarafından kullanılır.
IL ve Metadata’sı oluşturulan kod parçası, çalıştırılabilir bir yapıdadır.
C# ile IL’ye derlediğimiz programı çalıştırırken JIT derleyicileri devreye girerler. Bu derleyiciler programın çalıştırıldığı sistemin ve işlemcinin anlayabileceği makine kodunu oluştururlar.
JIT derleyicilerinin Windows ortamı için 3 farklı türü vardır. Bunlar:
Normal JIT : IL kodu makine koduna çevrilirken default(varsayılan) olarak kullanılan derleyicidir. IL kodunu orijinal makine koduna çevirir ve önbellekte tutar. Örneğin ; program içindeki bir derlenmiş bir metot program akışı içinde tekrar çağrılırsa önbellekten çekilir.
Pre-JIT: Tüm program kodunu makine koduna çevirip sonra çalıştıran JIT. Fazla hafıza gerektirir. Programın daha hızlı çalışmasını sağlar.
Eco JIT :Derlenen ve çalıştırılan program parçaları normal JIT’de hemen
hafızadan silinmiyordu. Fakat Eco‐JIT’de kullanılabilir hafıza belli bir oranın
altına düştüğünde, daha önceden derlenmiş ve çalıştırılmış kısımlar hafızadan
silinirler. Kısıtlı hafıza ve önbellekli sistemlerde .NET programlarının daha iyi çalışmalarını sağlamak için kullanılan derleyicidir.