.NET

Optimización del rendimiento

Profiling, BenchmarkDotNet, memory allocation, boxing/unboxing, Span<T>, mejores prácticas de rendimiento

22 preguntas de entrevista·
Senior
1

¿Cuál es la principal ventaja de BenchmarkDotNet frente a un simple Stopwatch para medir el rendimiento?

Respuesta

BenchmarkDotNet realiza warm-ups, mide múltiples iteraciones con estabilización estadística y evita los sesgos del JIT y del GC. Un Stopwatch simple puede dar resultados no representativos porque no controla estos factores. BenchmarkDotNet también proporciona métricas detalladas como las asignaciones de memoria por operación.

2

¿Qué herramienta de Microsoft se recomienda para analizar las asignaciones de memoria e identificar las fugas de memoria en producción?

Respuesta

dotMemory de JetBrains y PerfView de Microsoft son las herramientas recomendadas para perfilar la memoria en .NET. PerfView es gratuito, open-source y puede analizar las heap allocations, los stack traces y los eventos del GC. Es especialmente adecuado para diagnosticar fugas de memoria en producción sin un overhead significativo.

3

¿Cómo identificar las asignaciones de memoria ocultas en un método LINQ como FirstOrDefault()?

Respuesta

Usar BenchmarkDotNet con el atributo MemoryDiagnoser permite ver las asignaciones por operación. Las lambdas de LINQ crean asignaciones ocultas mediante delegates. Reemplazarlas por un simple bucle foreach elimina estas asignaciones. PerfView también puede capturar los stack traces de asignaciones para identificar las fuentes.

4

En BenchmarkDotNet, ¿qué atributo usar para medir el rendimiento de CPU e identificar los hotspots de código?

5

¿Cómo interpretar un resultado de BenchmarkDotNet que muestra Mean: 125.3 ns, StdDev: 45.2 ns?

+19 preguntas de entrevista

Domina .NET para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis