DevReach Conference Presentation

Download Report

Transcript DevReach Conference Presentation

Sofia, Bulgaria | 9-10 October
Troubleshooting Web Site
Performance Issues with
Visual Studio Team System
Martin Kulov
Director, .NET Development
National Academy for Software Development
MVP, MCT, MCSD, MCPD
What We Will Cover
● How testing processes can help us
deliver quality code
● Measuring performance of ASP.NET
sites
● Improving ASP.NET performance
Sofia, Bulgaria | 9-10 October
Agenda
● WWW (Why, When, What) to Test
● Web Applications Tests
● Performance Testing ASP.NET
Applications
● Profiling ASP.NET Applications
● Tuning ASP.NET Applications
Sofia, Bulgaria | 9-10 October
Why We Should Test
● Increased quality
● Finding and fixing design problems
● Lowering total cost of ownership (TCO)
and maintenance costs
Sofia, Bulgaria | 9-10 October
When We Should Test
● As often as possible
● As early as possible
● Test automation would be helpful
Sofia, Bulgaria | 9-10 October
What We Should Test
● Critical business features
● Everything else 
● The clearer performance goals are, the
better we will know what to test
● Project/program manager should get
these goals defined from the start
Sofia, Bulgaria | 9-10 October
Testing Web Applications
● Functional testing
● Performance testing
● Security testing
● Reliability testing
● Usability testing
● Many others …
Sofia, Bulgaria | 9-10 October
Functional Testing
● Validates user requirements
● Need to create test data
● Large sites could be very hard to test
● Bugs should be reproducible
● Test repetition is required
Sofia, Bulgaria | 9-10 October
Web Test Project Items
● Part of Test Project
● Functional testing tool
● Web Test Recorder
● Records every in/out HTTP packet
● Can be validated
● Can be programmatically extended
● Supports data binding
Sofia, Bulgaria | 9-10 October
Performance Testing
● Most critical and often neglected type of
test
● Should be done during each phase of
the project
● There are three main principles:
● Measure
● Measure
● Measure
● Set your desired goals
● Tune the application
Sofia, Bulgaria | 9-10 October
Setting Your Goals
● Response time
● Latency on the server
● Latency on the client
● Measure Time To First Byte (TTFB)
● Measure Time To Last Byte (TTLB)
● Throughput
● Resource utilization
● Identify problem areas
● Define workload profiles
Sofia, Bulgaria | 9-10 October
Load Test Project Items
● Part of Test Project
● Performance testing tool
● User defined load profiles
● Performance counters collection
● Predefined threshold values
● Distributed test controllers
Sofia, Bulgaria | 9-10 October
Profiling ASP.NET Applications
● Profiling is the process of collecting
data
● We can measure the result
● Profiling can be done though code
instrumentation or sampling
● In instrumentation, we inject additional
code into the system so that it can
generate events
● In sampling, we collect code execution
information on specified sampling rate
Sofia, Bulgaria | 9-10 October
Performance Wizard
● Located in Tools\Performance Tools
menu
● Profiling tool
● Sampling mode
● Instrumentation mode
● Can collect .NET object allocation and
lifetime information
● Can collect kernel events
● Has powerful command line commands
Sofia, Bulgaria | 9-10 October
Tuning ASP.NET Applications
● Performance tuning is an iterative
process
● On every step, we should identify and
eliminate bottlenecks
● Retest and measure again to see if we
are closer to our performance goals
● Visual Studio Team Suite tools can do
the job
● Unfortunately there is no integration of
Performance Wizard with Web and Load
Test in Visual Studio Team Suite
Sofia, Bulgaria | 9-10 October
Sofia, Bulgaria | 9-10 October
Demonstration
Profiling and load testing ASP.NET
applications with Microsoft® Visual
Studio® 2005 Team Suite
Session Summary
● The inevitable software testing process
● Measuring performance of ASP.NET
applications
● Tuning performance of ASP.NET
applications
● Visual Studio 2005 Team Edition for
Software Testers provides an integrated
profiling, load testing, and reporting
environment
Sofia, Bulgaria | 9-10 October
Next Steps
● Create load profiles for your
application
● Prepare and analyze reports from load
testing
● Identify and resolve bottlenecks
● Tune Windows operating system
performance
● Tune ADO.NET performance
● Tune Microsoft® SQL Server™
performance
Sofia, Bulgaria | 9-10 October
For More Information
● Microsoft patterns & practices
http://msdn.microsoft.com/practices/
● Improving .NET Application
Performance and Scalability
http://msdn.microsoft.com/library/defau
lt.asp?url=/library/enus/dnpag/html/scalenet.asp
Sofia, Bulgaria | 9-10 October
Additional Resources
● Rico Mariani’s blog
http://blogs.msdn.com/ricom/
● Maoni's WebLog
http://blogs.msdn.com/maoni/
● Bulgarian Association of Software
Developers
http://www.devbg.org
http://academy.devbg.org
● Martin Kulov’s blog
www.codeattest.com/blogs/martin
Sofia, Bulgaria | 9-10 October
Sofia, Bulgaria | 9-10 October
Please fill out the survey forms!
They are the key to amazing prizes that
you can get at the end of each day
Thank you!
Sofia, Bulgaria | 9-10 October