Date post: | 19-Dec-2015 |
Category: |
Documents |
View: | 219 times |
Download: | 1 times |
Improving .NET Scalability And Performance With Visual Studio Steve Carroll
Senior Development LeadMicrosoft Corporation
Ed GlasPrincipal Group ManagerMicrosoft Corporation
TL24
Visual Studio Team System provides performance tools to support you throughout the software lifecycle
Example Performance Requirement
Scenario Test Environment Requirement Goal
Home page Perf Environment #1 2s 1.5s
Search results page – 10 results Perf Environment #1 3s 4s
Checkout complete Perf Environment #1 5s 4s
E#1 Machine CPU RAM Disk NetworkClient Dell WS 650 1P 2.2 Ghz 1GB 7.5k eSata (100 GB) 600kb
App Server Dell PE 6650 4P 2.2 Ghz 4GB 2x15k RPM SCSI 1GbSQL Server HP DT 9250 8P 2.6 Ghz 16GB
3 x 7.2 K SATA (480 GB) 15 x 7.2 k SATA2 (3 TB) 1Gb
Application Data Size 1,000 restaurants, 50,000 menu items, 1,500 orders
Work load 1,000 virtual usersThroughput 100 home pages/sec
50 searches/sec2 checkouts/sec
Prototype to validate architecture
Design PhaseExploratory performance tests
UI
Action layer
Service API Service API
Web app
Database
Web app
Database
Run tests to isolate your server’s performance
Run tests to isolate performance of your dependencies
Design
Run end-to-end performance tests
TFS Perf ReportPri Scenario Goal Actual
Delta Goal
Delta build
Bug
2WebAccess: Run a query for 100 items 3.5 9.00 -157% -111% 518511
2VC: CommandLine - Rollback 1000 edits and folder rename 30 49.61 -65% 9% 416557
2WIT: UI - VS startup with connected Team Explorer (warm) 0.53 0.85 -61% 29% 535042
1Office Integration: Excel - Get 100 work items from picker 1 1.54 -54% -147% 468117
1 WIT: Run a In Group query 0.75 1.06 -41% 31% 468113
1 VC: UI - Open from SCC 120165.9
7 -38% -26% 510958
TFS Transaction Analysis
Application Command count Percentage
Test Weight from Dogfood Server
Version Control Download 7471817 82.98% 83.64%
Version Control QueryItems 470287 5.22% 5.24%
Integration IsMember 173575 1.93% 2.01%
Integration ReadIdentity 136990 1.52% 1.67%
WorkItem Tracking PageWorkitemsByIds 93075 1.03% 1.56%
WorkItem Tracking QueryWorkitems 84577 0.94% 1.10%
Version Control UpdateLocalVersion 75809 0.84% 1.23%
TFS Best Practices
Start early Focus on key scenarios Run tests regularly Measure against requirements Spend tuning time wisely
Types Of Performance Tests
Small DB
Expected Data Size
Peak Data Size
# Users
Data Scale
Target Layer
Web App
Database
Unit Test
Web Server
Web App
Database
Web Test
UI
Action Layer
Service API Service API
Web App
Database
Web App
Database
UI TestManual Test
Single UserTypical Load
Peak Load
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>
Theory Objects that were just allocated will soon die Objects that have been alive for some time
will keep on living
About Generational GC
Gen 0 Gen 1 Gen 2
Gen 0 is full, start garbage collection!New objects are allocated in Gen 0Dead objects are foundStill living objects are promoted
Large object heap
Locks are the up and coming bottleneck Multicore revolution Contention profiling
Low overhead Non-intrusive
Detecting .NET Locking Problems
Collect more analysis data Remote profiler integration Sys Info data collection Extensible data collectors to support
more platforms Run to run reports in Microsoft Excel Load test log visualization Run functional tests as performance tests New design-time extensibility points Many usability enhancements
VSTS 10 Web And Load Test Features
Now works under virtualization! New function details page Rules and guidance to help detect
common problems JScript profiling Just my code profiling Many usability enhancements
VSTS 10 Profiler New Features
Visual Studio Team System provides performance tools to support you throughout the software lifecycle
Know your tools! Profiler blog: http://blogs.msdn.com/profiler Web/load test blog:
http://blogs.msdn.com/edglas Forums:
http://social.msdn.microsoft.com/forums/en-US/vstswebtest/threads/
http://social.msdn.microsoft.com/Forums/en-US/vstsprofiler/threads/
Know your platform! Improving .NET Performance and Scalability
Resources
Related Sessions
Session ID
Session Title
TL19 Bringing Out The Best In Multicore Systems BB07 SQL Server 2008: Developing Large Scale Web Applications And ServicesTL38 WCF: Zen Of Performance And Scale
PC53 Building High Performance JScript Applications
TL60 Improving Code Quality With Code Analysis
TL03 Microsoft Visual Studio Team System: Software diagnostics and quality
Evals & Recordings
Please fill
out your
evaluation for
this session at:
This session will be available as a recording at:
www.microsoftpdc.com
© 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.