.NET

Performans Optimizasyonu

Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, performans en iyi uygulamaları

22 mülakat soruları·
Senior
1

Performansı ölçmek için basit bir Stopwatch'a kıyasla BenchmarkDotNet'in temel avantajı nedir?

Cevap

BenchmarkDotNet warm-up yapar, istatistiksel stabilizasyonla birden fazla iterasyonu ölçer ve JIT ile GC sapmalarını önler. Basit bir Stopwatch bu faktörleri kontrol etmediği için temsil edici olmayan sonuçlar verebilir. BenchmarkDotNet ayrıca işlem başına bellek tahsisi gibi ayrıntılı metrikler de sağlar.

2

Üretimde bellek tahsislerini analiz etmek ve bellek sızıntılarını belirlemek için hangi Microsoft aracı önerilir?

Cevap

JetBrains'in dotMemory'si ve Microsoft'un PerfView'i .NET'te belleği profillemek için önerilen araçlardır. PerfView ücretsiz, açık kaynaklıdır ve heap allocations, stack trace'leri ve GC olaylarını analiz edebilir. Özellikle önemli bir overhead olmadan üretimde bellek sızıntılarını teşhis etmeye uygundur.

3

FirstOrDefault() gibi bir LINQ metodundaki gizli bellek tahsisleri nasıl belirlenir?

Cevap

MemoryDiagnoser özniteliğiyle BenchmarkDotNet kullanmak, işlem başına tahsisleri gösterir. LINQ lambda'ları delegate'ler aracılığıyla gizli tahsisler oluşturur. Basit bir foreach döngüsüyle değiştirmek bu tahsisleri ortadan kaldırır. PerfView ayrıca kaynakları belirlemek için tahsis stack trace'lerini yakalayabilir.

4

BenchmarkDotNet'te CPU performansını ölçmek ve kod hotspot'larını belirlemek için hangi öznitelik kullanılır?

5

Mean: 125.3 ns, StdDev: 45.2 ns gösteren bir BenchmarkDotNet sonucu nasıl yorumlanır?

+19 mülakat soruları

Bir sonraki mülakatın için .NET'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla