LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

16
Profiling .NET apps with ANTS Profiler Bart Read Web and database performance consultant Previously: Red Gate Software Email: [email protected] Twitter: @bart_read Github: https://github.com/bartread www.bartread.com https://arcade.ly/

Transcript of LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

Page 1: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

Profiling .NET apps with ANTS ProfilerBart Read

Web and database performance consultantPreviously: Red Gate Software

Email: [email protected]: @bart_read

Github: https://github.com/bartread

www.bartread.com https://arcade.ly/

Page 2: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

Demo: ANTS Performance Profiler• Download and try:

http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/• Configuration• Collecting data• Analysing data• .NET code• HTTP requests• SQL• Memory usage

Page 3: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 4: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 6: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

ANTS Performance Profiler: Execution Plan View• Shows execution plan for a given set of query

parameters• Based on http://www.supratimas.com/

Page 7: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 8: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 9: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

Common SQL Performance Problems• Missing indexes• Queries with poor selectivity• WHERE columnName <> someValue• WHERE IN, WHERE NOT IN• CROSS JOIN, CROSS APPLY• Columns with poor selectivity, such as BIT

• Complex queries (e.g., nested views)• Blocking and deadlocking• Distributed queries

Page 10: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

Demo: ANTS Memory Profiler• Download and try:

http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/• Configuration (basically same as APP• Collecting data – snapshots• Analysing data• Comparing snapshots• Filtering• Identifying leaked types• Relating back to code - harder

Page 11: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 12: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 13: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 14: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler
Page 15: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

Useful Ancillary Tools from Red Gate

Page 16: LDNUG - Progressive .NET: Profiling .NET apps with ANTS Profiler

Questions?Bart Read

www.bartread.comhttps://arcade.ly/

Email: [email protected]: @bart_read

Github: https://github.com/bartread