Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
CPU Pipeline ve Branch Prediction: Sıralı Array Neden Daha Hızlı İşlenir?
Sıralı array daha hızlı işlenir çünkü içindeki if'ler tahmin edilebilir hâle gelir ve CPU pipeline'ı boşaltmak zorunda kalmaz. Bir milyon siparişte 9,4 kat fark, JIT'in döngüde neden cmov üretmediği, bit mask ile branchless toplama, bağımlılık zinciri ve ILP, Spectre'nin neden var olduğu.
Bir C# Satırı CPU'da Nasıl Çalışır: Kaynak Koddan IL'e, Assembly'den Instruction'a
Bir C# satırı CPU'ya iki çeviriyle ulaşır: Roslyn onu IL'e, JIT de çalışma anında o makinenin ISA'sına göre machine code'a çevirir; CPU bu byte'ları fetch-decode-execute döngüsüyle işler. TotalQuantity'nin 30 byte'lık x64 Tier-1 kodunu satır satır okuyor, ARM64 karşılığıyla, 789 byte'lık decimal versiyonuyla ve optimizasyonsuz Tier-0 ölçümüyle karşılaştırıyor, .NET 11'in x86-64-v2 tabanını anlatıyoruz.