🚀 .NET’te yüksek performanslı bellek yönetimi için yeni bir açık kaynak kütüphane yayınladık: DSO.Core.SpanPro
Bir süre önce DSOOpenServer ekosisteminden çıkan bu küçük ama güçlü kütüphaneyi keşfetmenizi ve paylaşmanızı tavsiye ediyorum.
Bu keşif ve paylaşımlarınız bizleri bu konuda şevklendirecektir.
Bağlantılarımdan bu konuda bizi desteklemesini ayrıca talep ediyorum çünkü, bunu yapmamızın amacı yaygınlaşmak ve ne derece ar-ge ler yaptığımızın da duyulmasını istiyoruz.
Bu yazdığımız kütüphane Ne yapıyor?
DSO.Core.SpanPro, .NET’in yerleşik Span<T> yapısını kullanmadan, Span benzeri bir ergonomi ve performans sunan bir dilimleme (slicing) kütüphanesidir. Tek bir yapı altında Array, String (ReadOnly) ve Unmanaged belleği yönetebilirsiniz.
⚙️ Öne çıkan özellikler:
• Çoklu backing, tek tip: SpanPro<T> ve ReadOnlySpanPro<T> ile array/string/unmanaged ayrımı şeffaf hale geliyor
• BMH (Boyer–Moore–Horspool) algoritması: char/byte alt dizi aramalarında ciddi hız kazanımı
• GC-dostu tasarım: ArrayPool, stackalloc ve iki-geçişli yazım ile GC baskısı minimumda
• GC-free sayı formatlama: Ara string oluşturmadan doğrudan buffer’a yazım
• Karakter bazlı ToString semantiği: long[], string[] gibi farklı backing türlerinde bile tutarlı metin çıktısı
🛠️ Nerede kullanılır?
✅ Parser / tokenizer geliştirme → Slicing + arama + düşük tahsisat üçlüsü
✅ Binary protokol işleme → Unmanaged buffer üzerinde hızlı arama ve kopyalama
✅ Metin üretim motorları → Buffer üzerine GC baskısı olmadan yazım
✅ String üzerinde güvenli salt-okunur işlemler → ReadOnlySpanPro<char> ile string backing
Özellikle oyun sunucuları, finansal sistemler, gerçek zamanlı veri işleme ve protokol parserleri gibi latency sensitive uygulamalarda GC pause sürelerini kısaltmak isteyen .NET geliştiricileri için değer taşıyor.
💡 BCL’in Memory/Span ekosisteminden farkı nedir?
Span<T> ref struct olduğu için async metodlar ve sınıf alanlarında kullanılamaz. SpanPro bu kısıtlamayı aşarak benzer performans hedefini daha esnek bir yapıyla sunuyor. Üstelik string backing ve overlap-safe kopyalama gibi özelleştirmeler de kutunun içinden geliyor.
📦 Şu an “source-first” kullanıma uygun; projenize Project Reference olarak ekleyebilirsiniz.
MIT lisanslı ve katkıya açık.
🔗 Dokümantasyon: https://dsopenserver.github.io/DSO.Core.SpanPro/
🔗 GitHub: https://github.com/DSOpenServer/DSO.Core.SpanPro
Düşük seviye .NET performansıyla ilgilenen herkese keşfetmesini öneririm. Siz bu tür kütüphaneleri projelerinizde nasıl değerlendirirsiniz?
Bu kütüphanenin kazandırılmasını sağlayan Ethem Çetinkaya ya teşekkürü bir borç bilirim.

#dotnet #csharp #performans #açıkkaynak #yazılım #bellekyönetimi











