💾 Span<T> = Memory Optimization
Heap allocation’lar maliyetlidir. Span<T> ile stack-based memory kullanımı yapın.
🎯 Span<T> Kullanımı
// 1. Span from Array
int[] numbers = { 1, 2, 3, 4, 5 };
Span span = numbers;
span[0] = 10; // Array değişir
// 2. Span from Stack
Span stackSpan = stackalloc byte[100];
// 3. ReadOnlySpan
ReadOnlySpan text = "Hello World".AsSpan();
// 4. Substring with Span
string s = "Hello World";
Span span2 = s.ToCharArray();
Span slice = span2.Slice(0, 5);
// 5. Performance Comparison
public int SumMemory(int[] array)
{
int sum = 0;
Span span = array;
foreach (var num in span)
sum += num;
return sum;
}
// 6. String Parsing with Span
public int ParseNumber(ReadOnlySpan input)
{
int result = 0;
foreach (char c in input)
{
if (char.IsDigit(c))
result = result * 10 + (c - '0');
}
return result;
}
✅ Span<T> Avantajları
- ✓ Heap allocation yok
- ✓ Daha hızlı erişim
- ✓ GC baskısı azalır
- ✓ Memory safe
- ✓ Performance-critical kod
Span<T>, .NET’in memory yönetiminde devrim yarattı. Heap allocation’ları minimize ederek performansı artırır.
