BenchmarkDotNet & Performance
What is BenchmarkDotNet?
Installation
Basic Benchmarking
Simple Benchmark
Running Benchmarks
Benchmark Attributes
[Benchmark]
[Params] - Test with Different Parameters
Setup and Cleanup
Memory Diagnostics
[MemoryDiagnoser]
Advanced Configuration
Custom Configuration
Iteration Control
Real-World Benchmarks
LINQ vs For Loop
String Operations
Collection Performance
Async vs Sync
Performance Optimization Techniques
1. String Operations
2. Collection Initialization
3. LINQ Optimization
4. Avoid Boxing
5. Struct vs Class
6. ValueTask vs Task
7. Span and Memory
8. ArrayPool
Database Query Optimization
EF Core vs Dapper
Query Optimization
Caching Optimization
Interpreting Results
Understanding Metrics
Performance Units
Garbage Collection
Best Practices
1. Always Run in Release Mode
2. Use Baseline Comparisons
3. Warm-up and Iterations
4. Use Appropriate Scope
5. Avoid Dead Code Elimination
Common Performance Anti-Patterns
1. Premature Optimization
2. Over-Optimization
Performance Checklist
Code Level
LINQ
Database
Async/Await
Quick Reference: Common Benchmarks
Last updated