msdevcon.ru #msdevcon
Dec 31, 2015
msdevcon.ru #msdevcon
ИЗ ПЕРВЫХ РУК: КАК СДЕЛАТЬ ВАШ КОД БЫСТРЫМПРОФАЙЛИНГ КЛИЕНТСКИХ И СЕРВЕРНЫХ ПРИЛОЖЕНИЙ В VISUAL STUDIO 2012
MAXIM GOLDIN
Senior Developer, Microsoft
AgendaASP.NET Profiling in Production
Profiler installation
Command line tools
Profiling of Client Applications Remote Profiling
HTML UI Responsiveness
Visual Studio JavaScript Instrumentation Profiler
Performance Analyzer for HTML5 Apps
JavaScript Memory Profiler
Challenges in ProductionCan’t reproduce the issue in a development environment
Can’t run Visual Studio on the production machine
Possibly very limited developer access to production machines
Want to minimize impact to the server Performance
Availability
Security
ASP.NET Profiling in productionRemote Tools
http://www.microsoft.com/en-us/download/details.aspx?id=38184
Standalone Profiler Installation media: vs_profiler.exe
Installed VS:
DEMO
ASP.NET INSTRUMENTATION PROFILINGIN PRODUCTION
ASP.NET Profiling in production Install Profiler
Remote Tools or Standalone Profiler
Use command line tools to collect data vsinstr.exe, VSPerfASPNetCmd.exe
Bring results back and analyze in VS
AgendaASP.NET Profiling in Production
Profiler installation
Command line tools
Profiling of Client Applications Remote Profiling
HTML UI Responsiveness
Visual Studio JavaScript Instrumentation Profiler
Performance Analyzer for HTML5 Apps
JavaScript Memory Profiler
DEMO
REMOTE PROFILINGWINDOWS STORE APPS
Remote ProfilingSupport for Windows Store Applications
Auto-deployment of the app
Requires elevation approval
HTML UI Responsiveness toolShows work being done by subsystems of Internet Explorer related to UI
Helps to identify app startup performance and low frames per second caused by
Content loading
Layouts/CSS calculation
Script execution/garbage collection
Network latency
Overdrawing
Being added in VS 2012 Update #2
DEMO
HTML UI RESPONSIVENESS TOOL
Visual Studio JavaScript Profiler Instrumentation-based profiling
Records how long every method takes to execute
Records exact counts of method calls
Only shows JavaScript execution time Does not show work done by other systems (e.g., rendering
or layout)
Profiler Terminology Inclusive time: The total amount of time from when the function was entered until the function exited
Includes the total time spent in all child functions
Exclusive time: The amount of time spent executing code in just the function body
Does NOT include time spent in child function
Inclusive and Exclusive timefunction Alpha(){
Beta();}
function Beta(){
}
30 ms
50 ms
Exclusive Inclusive
Alpha 30 80
Beta 50 50
DEMO
JAVA SCRIPT PRPOFILER
Performance Analyzer for HTML5 AppsWalks you through testing your application
Generates a report measuring 13 tenets of performance
Installs with the Windows 8 SDKActivation time Memory leaks
UI responsiveness Idle state CPU usage
Layout passes Successful suspend
Synchronous XMLHttpRequest on UI thread Memory reduction when suspended
Image scaling App memory growth
Memory footprint Runtime broker memory growth
Runtime broker memory reference set
DEMO
PERFORMANCE ANALYZER FOR HTML5 APPS
JavaScript Memory Profiler Identify unintentionally retained memoryand inefficient use of memory
Snapshot-based tool
Shows JavaScript and DOM elements Size
Counts
Reference graph
Memory terminologySize: How large the object is in memory
Retained Size: The amount of memory that the object is preventing the garbage collector from reclaiming
Includes the size of the object
Includes the size of all referenced objects (and any objects they reference) that the current object is the only parent of in the memory graph
Size and retaines size
Size Retained Size
Object A
Object B
Object C
Object D
500 KB 500 KB
100 KB 600 KB
Object A (100 KB)
Object B (500 KB)
Object C (50 KB)
Object D (100 KB)
50 KB
100 KB
50 KB
100 KB
Object A (100 KB)
Object B (500 KB)
600 KB
DEMO
JAVA SCRIPT MEMORY PROFILER
AgendaASP.NET Profiling in Production
Profiler installation
Command line tools
Profiling of Client Applications Remote Profiling
HTML UI Responsiveness
Visual Studio JavaScript Instrumentation Profiler
Performance Analyzer for HTML5 Apps
JavaScript Memory Profiler
More Info, Request Features
Maxim Goldin : [email protected]
ALM Team Blog: http://blogs.msdn.com/b/visualstudioalm
Uservoice site: http://visualstudio.uservoice.com
© 2013 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.