39
ASP.NET Performanc e Matt Watson Founder & CEO

5 Hidden Performance Problems for ASP.NET

Embed Size (px)

Citation preview

Page 1: 5 Hidden Performance Problems for ASP.NET

ASP.NET Performanc

eMatt Watson

Founder & CEO

Page 2: 5 Hidden Performance Problems for ASP.NET

Tip #1Hidden

Exceptions!

Page 3: 5 Hidden Performance Problems for ASP.NET

Avoid silly exceptions

Page 4: 5 Hidden Performance Problems for ASP.NET

Use TryParse methods

Page 5: 5 Hidden Performance Problems for ASP.NET

Break on First Chance Exceptions

Page 6: 5 Hidden Performance Problems for ASP.NET

When not Breaking…

Page 7: 5 Hidden Performance Problems for ASP.NET

Subscribe to first chance exceptions

Page 8: 5 Hidden Performance Problems for ASP.NET

Viewing the output

Page 9: 5 Hidden Performance Problems for ASP.NET
Page 10: 5 Hidden Performance Problems for ASP.NET

Improve page load times

Page 11: 5 Hidden Performance Problems for ASP.NET
Page 12: 5 Hidden Performance Problems for ASP.NET

Exceptions best practices

• Avoid them at all costs

• Find hidden exceptions with Prefix

• Track all first chance exceptions to hunt them down

• Aggregate all exceptions in production

Page 13: 5 Hidden Performance Problems for ASP.NET

Tip #2Serialization

Page 14: 5 Hidden Performance Problems for ASP.NET

Web requestsSerialize Request

Send Request

Receive Response Headers

Download Response

Deserialize Response

Page 15: 5 Hidden Performance Problems for ASP.NET

Breaking down a WCF request client side

Page 16: 5 Hidden Performance Problems for ASP.NET

Breaking down a WCF request server side

Page 17: 5 Hidden Performance Problems for ASP.NET

REST call client side

Page 18: 5 Hidden Performance Problems for ASP.NET

REST call server side

Page 19: 5 Hidden Performance Problems for ASP.NET

Reading incoming data

Page 20: 5 Hidden Performance Problems for ASP.NET

Comparing different usages

Page 21: 5 Hidden Performance Problems for ASP.NET

Web request & serialization tips• Understand payload size

• Customize JSON serializers

• Consider manually reading incoming data

Page 22: 5 Hidden Performance Problems for ASP.NET

Tip #3SSL

Overhead

Page 23: 5 Hidden Performance Problems for ASP.NET

SSL Overhead on Windows

Page 24: 5 Hidden Performance Problems for ASP.NET

IIS Architecture

Page 25: 5 Hidden Performance Problems for ASP.NET

SSL Tips• Offload SSL to load balancer or hardware if possible• Netscaler, F5, etc

• Use Azure Application Gateway for SSL offloading

• AWS use ELB with SSL

Page 26: 5 Hidden Performance Problems for ASP.NET

Tip #4Garbage collection

Page 27: 5 Hidden Performance Problems for ASP.NET

Garbage collection pauses

Page 28: 5 Hidden Performance Problems for ASP.NET

Monitoring GC Time

Page 29: 5 Hidden Performance Problems for ASP.NET

Monitoring GC Time

Page 30: 5 Hidden Performance Problems for ASP.NET

Garbage Collection Tips• Avoid the large object heap

• Use streams where you can

• Avoid large strings

• Server vs workstation GC mode <gcServer>

• Monitor GC performance counters

Page 31: 5 Hidden Performance Problems for ASP.NET

Tip #5Real SQL

Performance

Page 32: 5 Hidden Performance Problems for ASP.NET
Page 33: 5 Hidden Performance Problems for ASP.NET
Page 34: 5 Hidden Performance Problems for ASP.NET

What does App Insights say?

Page 35: 5 Hidden Performance Problems for ASP.NET
Page 36: 5 Hidden Performance Problems for ASP.NET
Page 37: 5 Hidden Performance Problems for ASP.NET

SQL Connection Statistics

Page 38: 5 Hidden Performance Problems for ASP.NET

SQL Performance Tips• SQL server performance != real world performance

• Your SQL performance reports are probably all wrong!

• Use your logging or Prefix to understand real world performance

Page 39: 5 Hidden Performance Problems for ASP.NET

Questions?