önsöz
. Net8 versiyonu, karşılaştırıldığında. Net7 çok değişti. Bu makalede, uygulama performansını iyileştirmeye yönelik resmi olarak önerilen yeni performans değişikliklerine bakalım.
Wraparound
1.Sistem.Koleksiyonlar.Dondurulmuş
İsim alanları arasında FrozenDictionary< TKey, TValue> ve FrozenSet koleksiyon türleri bulunur. Bir koleksiyon oluşturulduktan sonra, bu türler anahtarlarda ve değerlerde herhangi bir değişikliğe izin vermez. Bu gereksinim, daha hızlı okuma işlemlerini mümkün kılar (örneğin, TryGetValue()). Bu türler, ilk kullanımda doldurulup uzun vadeli hizmet için tutulan koleksiyonlar için özellikle faydalıdır, örneğin:
2.System.Buffers.IndexOfAnyValues
Tip, geçen koleksiyondaki herhangi bir değerin ilk eşleşmesini bulma yöntemine aktarılması amaçlanmıştır. Örneğin, String.IndexOfAny(Char[]) belirtilen dizide herhangi bir karakterin ilk eşleşmesini arar. NET 8, yeni tür örnekleri kabul eden String.IndexOfAny ve MemoryExtensions.IndexOfAny gibi yeni metod aşırı yüklenmeleri ekler. System.Buffers.IndexOfAnyValues örneği oluşturduğunuzda, sonraki aramaları optimize etmek için gereken tüm veriler o anda türetilir, yani iş önceden yapılmıştır.
3.System.Text.CompositeFormat
Türler, derleme sırasında bilinmeyen biçim dizelerini optimize etmek için kullanılabilir (örneğin, biçim dizileri kaynak dosyalarından yüklenir). Dizileri ayrıştırmak gibi işleri baştan yapmak biraz ekstra zaman alıyor, ama bu her kullandığınızda yapılan işten tasarruf eder.
4.System.Buffers.IndexOfAnyValues
Tip, geçen koleksiyondaki herhangi bir değerin ilk eşleşmesini bulma yöntemine aktarılması amaçlanmıştır. Örneğin, String.IndexOfAny(Char[]) belirtilen dizide herhangi bir karakterin ilk eşleşmesini arar. NET 8, yeni tür örnekleri kabul eden String.IndexOfAny ve MemoryExtensions.IndexOfAny gibi yeni metod aşırı yüklenmeleri ekler. System.Buffers.IndexOfAnyValues örneği oluşturduğunuzda, sonraki aramaları optimize etmek için gereken tüm veriler o anda türetilir, yani iş önceden yapılmıştır.
5.System.Text.CompositeFormat
Türler, derleme sırasında bilinmeyen biçim dizelerini optimize etmek için kullanılabilir (örneğin, biçim dizileri kaynak dosyalarından yüklenir). Dizileri ayrıştırmak gibi işleri baştan yapmak biraz ekstra zaman alıyor, ama bu her kullandığınızda yapılan işten tasarruf eder.
6. System.Numerics ve System.Runtime.Intrinsics
System.Numerics ve System.Runtime.Intrinsics isim alanlarında iyileştirmeler. Vector256, Matrix3x2 ve Matrix4x4, .NET 8'de donanım hızlandırmasını iyileştirir. Örneğin, Vector256 mümkün olduğunda 2xVector128'i yeniden uygulamıştır. Donanım iç bileşenleri artık ConstExpected özelliğini kullanarak notlama yapıyor. Bu sayede kullanıcılar, temel donanımın ne zaman sabitlere ihtiyaç duyduğunu ve olağanüstü değerlerin performansa zarar verebileceğini bilmelerini sağlar.
Referans:Bağlantı girişi görünür. Özgün:Bağlantı girişi görünür.
|