
NET framework’ünde kodlama yapanlar NET5 ile yeni bir dünyaya giriş yaptığını zaten biliyordu. Sonrasında ise her yeni versiyon bir öncekinden fazlaca hızlıydı. Günümüz itibari ile son dedikodularını aldığımız, ‘preview’ versiyonlarını gördüğümüz framework ise NET8 olarak karşımıza çıkıyor sadece çıkmakla da kalmıyor, adeta ışık hızında bir performans artışı sunuyor. Peki bu hızın sırrı nedir sizce? Nasıl bu kadar hızlı bir ilerleme kaydetti? Sizi bu gizemin perdesini aralayacağımız bir yolculuğa çıkartayım.
NET, her sürümünde teknolojik evrimi ve optimizasyon tekniklerini derinlemesine kullanarak, sürekli olarak performansını artırmaya çalışıyor. Bunların en dikkat çekenlerinden birisi Just-In-Time (JIT) derleyicisi. Microsoft ekibi zamanla JIT derleyicisini daha hızlı ve verimli hale getirdi. Böylece, modern donanımlar ve işletim sistemleri doğrultusunda yapılan özel optimizasyonlar, NET’in performansını daha da yükseltiyor.
Bu hızlı trenin bir diğer motoru da Span. İlk bakışta, bir dizi parçasını temsil eden bir yapı gibi görünse de, hafıza kullanımını önemli ölçüde optimize ediyor. Bu, hafıza işlemlerini hızlandırarak, performansı artırıyor. Yani, Span, hafıza ve hızı sıkı bir şekilde bir araya getirerek, NET’in gücünü en üst düzeye çıkarıyor. Span’in aktif şekilde kullanımını ve faydasını anlatan bir videom da var. Şuradan izleyebilirsiniz.
Source Generators, NET 5 ile birlikte tanıtıldı ve performansı artırmakla kalmadı, aynı zamanda kodlama sürecine de büyü kattı. Bu yapı, genellikle kodun derleme sürecine nüfuz ederek ve onu iyileştirerek çalışır. Sonuç olarak, uygulamalar daha hızlı ve verimli hale geliyor. Belki kendi başına bir makaleyi hak eden bir konu bu 🙂
Performans artışındaki bir diğer önemli etken de gelişmiş Garbage Collector (Çöp Toplayıcı) sistemidir. NET5 ve sonrasında, Garbage Collector daha da verimli hale getirildi. Böylece uygulamaların bellekte kapladıkları yerler çok daha hızlı ve verimli bir şekilde yönetilerek, uygulamaların daha hızlanması sağlandı.
Bir sonraki durak, NET kütüphanelerinde yapılan iyileştirmeler. Bu iyileştirmelerin bir kısmında hali hazırda Span veya Source Generator gibi yapılar kullanılmaya başladı. Yani siz artık NET7 de string.StartsWith() metodunu kullanırken arka tarafta verimliliği arttırmak için Span kullanılıyor olacak. Yani hem bize Span kullandırtıyorlar, hem de kendileri kullanıyorlar. (Kendim bizzat evimde bunu kullanıyorum :))
C#, F# ve diğer .NET dillerindeki yenilikler de unutulmamalı. Bu dillerin gelişimi ve yenilikleri, .NET’in genel performansını daha da yükseltiyor.
NET 8’deki hızlanma, Tiered Compilation ve Hardware Intrinsics gibi yeni derleyici özelliklerine de bağlı. Tiered Compilation, JIT derleyicinin daha hızlı ve verimli çalışmasını sağlar. Hardware Intrinsics, programların CPU’nun özel işlevlerine doğrudan erişmesine olanak sağlar. Bu, bilhassa matematiksel ve bilimsel hesaplamaların daha hızlı çalışmasını sağlıyor.
RyuJIT, NET’in Just-In-Time derleyicisidir. Her yeni .NET sürümünde, bu derleyici daha da hızlı ve verimli hale getirilir. Ayrıca, System.Text.Json da diğer bir iyileştirme olarak görülebilir. Json dönüşümlerini alternatif kütüphanelere göre çok daha hızlı yapabilen bu kütüphane, artık WebApi’lerin kalbi niteliğinde bir özelliğe sahip.
Son olarak, Memory Allocation (Bellek Tahsisindeki) optimizasyonlar, NET8’in performansını artıran bir başka önemli özelliktir. Bu, uygulamaların hafıza verimliliğini ve genel performansını geliştiriyor.
NET 8’in getirdiği tüm bu yenilikler ve iyileştirmeler, hız ve performanstaki artışın sırrı. Ve öyle görünüyor ki bunlar sadece başlangıç, NET platformu sürekli olarak gelişmeye ve hızla ilerlemeye devam edecek gibi. Bu hızlı ve heyecan verici yolculukta bize katılın ve NET’in geleceğine birlikte yön verelim. Bakalım sonraki versionlarda neler gelecek başımıza 🙂