
Optimasi Performa
Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, praktik terbaik performa
1Apa keunggulan utama BenchmarkDotNet dibandingkan Stopwatch sederhana untuk mengukur performa?
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.
2Alat Microsoft mana yang direkomendasikan untuk menganalisis alokasi memori dan mengidentifikasi kebocoran memori di produksi?
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.
3Bagaimana cara mengidentifikasi alokasi memori tersembunyi dalam metode LINQ seperti FirstOrDefault()?
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.
Pada BenchmarkDotNet, atribut mana yang digunakan untuk mengukur performa CPU dan mengidentifikasi hotspot kode?
Bagaimana menafsirkan hasil BenchmarkDotNet yang menunjukkan Mean: 125.3 ns, StdDev: 45.2 ns?
+19 pertanyaan wawancara
Topik wawancara .NET lainnya
Dasar-Dasar C#
LINQ & Delegates
Esensi Bahasa C#
Dasar-Dasar ASP.NET Core
Siklus Hidup Request ASP.NET Core
Configuration & Settings
Siklus Hidup Aplikasi
Dependency Injection
Entity Framework Core
Minimal APIs
Pengembangan Web API
Async di ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serialisasi JSON
Entity Framework Core Tingkat Lanjut
Fitur Lanjutan C#
Clean Architecture
Logging, Monitoring & Observability
Unit Testing & xUnit
Pengujian Integrasi
Docker & Containerization
Manajemen Paket NuGet
Memory Management & GC
Pemrograman reaktif
Async/await & Pola
.NET Design Patterns
Keamanan & Best Practices
SignalR & Real-time
Arsitektur Microservices
Kuasai .NET untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis