Presentation is loading. Please wait.

Presentation is loading. Please wait.

DEV411 ASP.NET: Best Practices For Performance Stephen Walther

Similar presentations

Presentation on theme: "DEV411 ASP.NET: Best Practices For Performance Stephen Walther"— Presentation transcript:

1 DEV411 ASP.NET: Best Practices For Performance Stephen Walther

2 Purpose of Talk What is the fastest method of displaying a set of database records in an ASP.NET Page?

3 Testing Tools Trace Tools Profiler Tools Load Tools

4 Trace Tools ASP.NET Page or Application Tracing Display trace information on page System.Diagnostics Tracing Write trace information to custom listener

5 Trace Tools

6 Profiler Tools CLR Profiler Free Profiler from Microsoft ANTS Profiler Available at SQL Profiler Included with Microsoft SQL Server

7 ANTS Profiler

8 Load Tools Application Center Test Included with Visual Studio.NET Enterprise Web Application Stress Tool (WAST) Free download from Microsoft site ANTS Load Available at Includes calculated Frustration Coefficient

9 Test Setup Application Center Test (ACT).NET Framework 1.1 SQL Server 2000 Windows Server 2003 (Standard)

10 Performance Statistics Requests Per Second (RPS) Time To Last Byte (TTLB) Page Execution Time

11 Timer Module The Timer Module records the time interval between PreRequestHandlerExecute Event PostRequestHandlerExecute Event

12 Timer Module PostRequestEventHandlerExecute EndRequest Load Init Unload TimerModule.cs PreRequestEventHandlerExecute BeginRequest Application Events Page Events

13 Clock Resolution QueryPerformanceCounter is accurate to 1/3579545 of a second or about a millionth of a second

14 The Test Request page 1050 times Discard first 50 requests Log time of each request Average results

15 Database Setup Four Database Tables Products10 – 10 Rows Products50 – 50 Rows Products100 – 100 Rows Products500 – 500 Rows

16 Whats Faster? DataReaderDataSet DisplayDataReader.aspx DisplayDataSet.aspx

17 DataReader

18 DataSet

19 DataReader Versus DataSet

20 DataReader Versus DataSet Final Results On average, a DataReader is 16% faster than DataSet

21 3rd Option – ArrayList Using an ArrayList instead of a DataReader results in similar performance with the advantages of a static representation of data DisplayArrayList.aspx

22 ArrayList

23 Whats Faster? SqlDataReaderOleDbDataReader

24 OleDbDataReader

25 OleDbDataReader Final Results On average, a SqlDataReader is 115% faster than an OleDbDataReader

26 Whats Faster? Inline SQL Stored Procedure


28 Whats Faster? DataReader Column Reference By Name: Response.Write(dr[ProductName]); By Ordinal: Response.Write(dr[0]); By GetString(): Response.Write(dr.GetString(0));

29 Column Reference

30 Column Reference Final Results On average, ordinal reference is 11% faster than by name

31 Whats Faster? Proper Case dr[ProductName] Improper Case dr[PRODUCTNAME]

32 Proper Case

33 Proper Case Final Results Using proper column case is 1% faster than improper column case

34 Whats Faster? Inline ASP.NET Controls

35 DataGrid

36 DataGrid Final Results Inline script is 233% faster than a DataGrid

37 Whats Faster? DataGrid with ViewState Disabled DataGrid with ViewState Enabled

38 ViewState

39 ViewState Final Results DataGrid with ViewState disabled is 66% faster than DataGrid with ViewState enabled

40 Whats Faster? AutoGenerateColumns Template Columns


42 Template Columns Final Results A DataGrid without templates is 39% faster than a DataGrid with templates

43 Whats Faster? How to improve template performance? DataBinder.Eval Explicit Cast ItemDataBound void ItemDataBound(Object s, DataGridItemEventArgs e) DisplayItemDataBound.aspx

44 Template Performance

45 Template Performance Final Results Explicit cast is 11% faster than using a databinding expression

46 Creating A Custom Control Would a custom DataGrid (with severely reduced functionality) be faster than the standard DataGrid? FastGrid.cs

47 Custom Control

48 Custom Control Final Results FastGrid is 37% faster than a standard DataGrid

49 Whats Faster? DataGrid with no caching DataGrid with data caching DataGrid with output caching

50 Data Caching

51 Data Cache Final Results Using the data cache is 637% faster than a standard DataGrid

52 Output Cache

53 Output Cache Final Results Using the output cache is infinitely faster than using a standard DataGrid

54 Conclusions A DataReader is faster than a DataSet An inline DataReader is faster than a DataGrid You pay a high price for ViewState AutoGenerateColumns is faster than template columns Caching is always a good idea!

55 Performance Resources Microsoft Sites Performance Improving.NET Application Performance and Scalability Web Application Stress Tool CLR Profiler 94635beebdda&displaylang=en ANTS Profiler and ANTS Load

56 Q1:Overall satisfaction with the session Q2:Usefulness of the information Q3:Presenters knowledge of the subject Q4:Presenters presentation skills Q5:Effectiveness of the presentation Please fill out a session evaluation on CommNet

Download ppt "DEV411 ASP.NET: Best Practices For Performance Stephen Walther"

Similar presentations

Ads by Google