Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
AOT Compilation: ReadyToRun, Native AOT ve Startup ile Throughput Arasındaki Seçim
Native AOT, makine kodunu publish sırasında üretip startup'ı ve belleği belirgin şekilde azaltır; bedeli trimming, dynamic code yasağı, platforma özel build ve Dynamic PGO'nun yokluğudur. Aynı Bookstore API'sini JIT, ReadyToRun ve Native AOT ile publish edip startup, bellek ve throughput ölçüyor; filtre dilimizin AOT'de verdiği uyarıları, uyarı vermeden 500 dönen trimming hatasını ve Expression.Compile()'ın interpreter'a dönmesinin bedelini gösteriyoruz.
Kod Nasıl Çalışır Hâle Gelir: Compiler, Interpreter, JIT ve AOT'nin Haritası
Derlenen ya da yorumlanan dil diye bir ayrım yok; aynı aşamaların hangisinin build'de, hangisinin çalışma anında yapıldığı implementation'ın seçimi. 1.500 kez çağrılan bir C# method'u JIT tarafından yalnız üç kez derleniyor, TypeScript tipleri build'de kontrol edilip siliniyor, V8 ise kodu önce yorumlayıp sonra Maglev ve TurboFan ile derliyor. Yazı compiler pipeline'ını gerçek çıktılarla gösteriyor ve seri boyunca yazılacak Bookstore filtre dilinin grammar'ını çıkarıyor.