Persyaratan: Baru-baru ini, melihat pengetahuan<T> seperti Rentang dan Memori<T>, saya merasa bahwa ada banyak keuntungan menggunakan objek tersebut, seperti: akses langsung ke memori (dan sangat aman), pengurangan alokasi memori yang tidak perlu (tergantung pada adegan, misalnya, intersepsi substring konversi string), modifikasi nilai dalam memori, dan masih belajar, bukan pemahaman yang mendalam.
System.Span<T> adalah jenis nilai baru di inti .NET. Ini mendukung representasi wilayah memori arbitrer yang berdekatan, apakah memori tersebut dikaitkan dengan objek terkelola, disediakan oleh kode asli melalui interop, atau berada di tumpukan. Itu dilakukan sambil tetap menyediakan akses yang aman, dengan karakteristik kinerja yang mirip dengan array. Saat digunakan, Span memastikan keamanan memori dan data dengan sedikit atau tanpa overhead.
Misalnya, jika kita menggunakan Substring untuk mengonversi string untuk mengetik int, guid, long, dll., kita tidak akan lagi menggunakan konten string yang disadap, tetapi memanggil Substring untuk mengembalikan string baru akan meminta ruang memori baru.
Pertama, alat benchmarking BenchmarkDotNet diperkenalkan, sebagai berikut:
Kode pengujiannya adalah sebagai berikut:
Hasilnya adalah sebagai berikut:
Referensi:
Login hyperlink terlihat.
Login hyperlink terlihat.
|