.NET

Optimasi Performa

Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, praktik terbaik performa

22 pertanyaan wawancaraยท
Senior
1

Apa keunggulan utama BenchmarkDotNet dibandingkan Stopwatch sederhana untuk mengukur performa?

Jawaban

BenchmarkDotNet melakukan warm-up, mengukur beberapa iterasi dengan stabilisasi statistik, dan menghindari bias JIT dan GC. Stopwatch sederhana dapat memberikan hasil yang tidak representatif karena tidak mengontrol faktor-faktor ini. BenchmarkDotNet juga menyediakan metrik terperinci seperti alokasi memori per operasi.

2

Alat Microsoft mana yang direkomendasikan untuk menganalisis alokasi memori dan mengidentifikasi kebocoran memori di produksi?

Jawaban

dotMemory dari JetBrains dan PerfView dari Microsoft adalah alat yang direkomendasikan untuk profiling memori di .NET. PerfView gratis, open-source, dan dapat menganalisis heap allocations, stack traces, dan event GC. Sangat cocok untuk mendiagnosis kebocoran memori di produksi tanpa overhead signifikan.

3

Bagaimana cara mengidentifikasi alokasi memori tersembunyi dalam metode LINQ seperti FirstOrDefault()?

Jawaban

Menggunakan BenchmarkDotNet dengan atribut MemoryDiagnoser menampilkan alokasi per operasi. Lambda LINQ membuat alokasi tersembunyi melalui delegate. Menggantinya dengan loop foreach sederhana menghilangkan alokasi ini. PerfView juga dapat menangkap stack trace alokasi untuk mengidentifikasi sumbernya.

4

Pada BenchmarkDotNet, atribut mana yang digunakan untuk mengukur performa CPU dan mengidentifikasi hotspot kode?

5

Bagaimana menafsirkan hasil BenchmarkDotNet yang menunjukkan Mean: 125.3 ns, StdDev: 45.2 ns?

+19 pertanyaan wawancara

Kuasai .NET untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis