Thursday, July 07, 2005

.NET Performance and Scalability

Another good presentation by Indgo Rammer, this focussed on some key tips for Performance and Capacity planning your .NET based application. To summarise:

#1 Use Tracing, the 'Wire doesn't lie' which is very true. Etherreal or something similar is invaluable. Tune for Latency and Bandwidth, if your unsure, go with Bandwidth. His reasons, if we still had 1200 Baud modems, it would be faster to walk to Redmond and Collect a CD than it would be for it to download!!

#2 Trace and Optimise your SQL. Once example using DataSets shown how expensive they were with tables that had relationships as the DataSet doesn't know about FK's. For example, an example with a small dataset shows 500 SQL statements as opposed to an optimised 12!!

#3 Memory profiling

Use the Release not Debug Build for memory profiling, they have different meory models.
Datasets are rubbish at memory handling, the same example used (10 items with 14 rows) showed a used of 4MB - this will NOT scale in 32-Bit windows!!

Example In-Process profilers include Compuware's DevPartner and Redgates ANT

#4 HTTP

it was never meant to be used how we are using it today, it was based on lots of clients few servers - nowadays we can have lots of clients AND lots of servers

In HTTP 1.1, it has a default value of 2 synchronous connections per address, use the to increase the max number of connections per address from 2 to something like 99. This is found in web.config under System.Net or something

Good session!

0 Comments:

Post a Comment

<< Home