Professional Documents
Culture Documents
Senior Development
Lead
Microsoft
Corporation
Ed Glas
Principal Group
Manager
Microsoft Corporation
Outline
Performance
lifecycle
Diagnosing common .NET
performance problems
One Last
Walkthrough
Before Launch
We Got Lucky!
Performance Lifecycle
Maintenance
Gathering
requirements
Design
Development
Deployment
Testing
Performance Requirements
Gathering
requirements
Test Environment
Requirem
ent
Goal
Home page
Perf Environment #1
2s
1.5s
Perf Environment #1
3s
4s
Checkout complete
Perf Environment #1
5s
4s
E#1
Machine
Client
Dell WS 650
CPU
RA
M
Disk
1P 2.2
Ghz
1GB
Network
600kb
App
Server
Dell PE 6650
4P 2.2 Ghz 4GB
2x15k RPM SCSI
1Gb
3 x 7.2 K SATA (480
Application
SQL
GB)
Server
15 x
7.2 k items,
SATA2 1,500 orders
1,000 restaurants, 50,000
menu
Data Size
HP DT 9250
Work load
Throughput
(3 TB)
1Gb
Performance Lifecycle
Gathering
requirements
Design
Design Phase
to validate architecture
Run end-to-end performance tests
Design
Action layer
Service API
Service API
Web app
Web app
Database
Database
Run tests to
isolate
performance of
your
dependencies
demo
Case Study:
Performance And
Stress Testing
Team Foundation
Server
Goal Actual
Delta
Goal
Delta
build
Bug
1
1
1
0.75
165.9
120
7
2
2
1.54
1.06
-38%
-26% 510958
Application
Version
Control
Version
Control
Integration
Integration
WorkItem
Tracking
WorkItem
Tracking
Version
Control
Command
Download
count
747181
7
Percenta
ge
Test Weight
from
Dogfood
Server
82.98%
83.64%
QueryItems
IsMember
ReadIdentity
PageWorkitemsB
yIds
470287
173575
136990
5.22%
1.93%
1.52%
5.24%
2.01%
1.67%
93075
1.03%
1.56%
QueryWorkitems
UpdateLocalVersi
on
84577
0.94%
1.10%
75809
0.84%
1.23%
Start early
Focus on key scenarios
Run tests regularly
Measure against requirements
Spend tuning time wisely
demo
Using UI Tests as
Performance Tests
and JScript Profiling
Web
Test
UI
Action Layer
Service
Service
API
API
Web App
Web App
Database
Database
Target Layer
Web
Server
Web App
Single
User
Unit
Test
Typical Load
Peak Load
Web App
Database
Database
Small
DB
Expected
Data Size
Peak Data
Size
Data Scale
# Users
demo
Run To Run
Comparison Of
Load Tests
Performance Quiz
<asp:SqlDataSource ID="SqlDataSource2"
runat="server"
ConnectionString= ProviderName="
SelectCommand="SELECT * FROM ... ">
</asp:SqlDataSource>
Select Company:
<asp:DropDownList
ID="ddl1" runat="server
DataTextField="Company Name"
DataValueField=Company ID
OnSelectedIndexChanged="Selection_Change>
</asp:DropDownList>
About Generational GC
Theory
Dead
livingstart
objects
objects
are allocated
are
are found
promoted
incollection!
Gen 0
GenNew
0Still
isobjects
full,
garbage
Gen 0
Gen 1
Gen 2
demo
Diagnosing
Memory Issues
Low overhead
Non-intrusive
demo
Contention
Profiler
Extensible
data collectors to
support
more platforms
Resources
Profiler blog:
http://blogs.msdn.com/profiler
Web/load test blog:
http://blogs.msdn.com/edglas
Forums:
http://social.msdn.microsoft.com/for
ums/en-US/vstswebtest/threads/
http://social.msdn.microsoft.com/Foru
ms/en-US/vstsprofiler/threads/
Related Sessions
Sessio
n ID
Session Title
TL19
BB07
TL38
PC53
TL60
TL03
ll
fi
e
s
a
Ple
ur
o
y
t
u
o
n
o
i
t
a
u
l
eva
s
for thi
t:
a
n
o
i
s
ses
This se
ssion
will be
availab
l e as
a recor
ding
a t:
www.microsoftpdc.com
QA
&
2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks
in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft
must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of
any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS
PRESENTATION.