Download presentation
Presentation is loading. Please wait.
Published byMaya Gibson Modified over 10 years ago
1
DEV411 ASP.NET: Best Practices For Performance Stephen Walther www.SuperexpertTraining.com
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 www.Red-Gate.com 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 www.Red-Gate.com. 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 Performancehttp://msdn.microsoft.com/netframework/using/understanding/perf/default.aspxBooks Improving.NET Application Performance and Scalability http://msdn.microsoft.com/library/en-us/dnpag/html/scalenet.aspSoftware Web Application Stress Tool http://www.microsoft.com/technet/itsolutions/intranet/downloads/webstres.mspx CLR Profiler http://www.microsoft.com/downloads/details.aspx?FamilyID=86ce6052-d7f4-4aeb-9b7a- 94635beebdda&displaylang=en ANTS Profiler and ANTS Load http://www.Red-Gate.com
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.