Gereksinimler: Son zamanlarda<T> Span ve Bellek gibi bilgilere <T>baktığımda, bu tür nesneleri kullanmanın birçok avantajı olduğunu düşünüyorum; örneğin: belleğe doğrudan erişim (ve çok güvenli), gereksiz bellek tahsisinin azaltılması (örneğin, sahneye bağlı olarak, dize dönüşümünün alt dizi kesimlenmesi), bellekteki değerlerin değiştirilmesi ve yine de öğrenme, ama derinlemesine bir anlayış değil.
System.Span<T>, .NET çekirdeğinde yeni bir değer türüdür. Bu bellek yönetilen bir nesneyle ilişkilendirilmiş olsun, yerel kod ile interop yoluyla sağlansa da yığında olsun, rastgele bellek bölgesinin sürekli temsil edilmesini destekler. Bunu, dizilere benzer performans özelliklerine sahip güvenli erişim sağlarken sağlar. Kullanımda Span, çok az veya hiç ek yük olmadan hafıza ve veri güvenliğini sağlar.
Örneğin, bir diziyi int, guid, long vb. tiplerine dönüştürmek için Substring kullanırsak, artık alınan dize içeriğini kullanmayız, ancak Substring'i çağırarak yeni bir dizi döndürmek yeni bellek alanı talep eder.
İlk olarak, aşağıdaki şekilde BenchmarkDotNet kıyaslama aracı tanıtılır:
Test kodu şu şekildedir:
Sonuçlar şu şekildedir:
Referans:
Bağlantı girişi görünür.
Bağlantı girişi görünür.
|