demystifying visual studio 2012 performance tools
DESCRIPTION
TRANSCRIPT
![Page 1: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/1.jpg)
www.devreach.com
Demystifying Visual Studio 2012 Performance Tools
Martin Kulov | kulov.net
![Page 2: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/2.jpg)
www.devreach.com
You cannot manage,What you do not measure
![Page 3: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/3.jpg)
www.devreach.com
You cannot Improve,What you do not measure
![Page 4: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/4.jpg)
www.devreach.com
Operating System
Trace Analysis
HDD RAM CPU LAN
Win32 API
CLR WinRT
CPU Counters
COM
Our code
![Page 5: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/5.jpg)
www.devreach.com
CPU Counters
• Hardware events – portable and platform– Instructions Retired– Non Halted Cycles– ITLB Misses– Branches Retired– Mis-predicted Branches– L2 Cache Read Misses– L2 Cache Read References
![Page 6: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/6.jpg)
www.devreach.com
Operating System
Trace Analysis
HDD RAM CPU LAN
Win32 API
CLR WinRT Windows
Perf
Counters
CPU Counters
COM
Our code
![Page 7: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/7.jpg)
www.devreach.com
Windows Performance Counters
• They are …counters• Min interval – 1sec• Apps and kernel send Increment
signals• Accessed by Windows API
![Page 8: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/8.jpg)
www.devreach.com
Perf Counters Demo
![Page 9: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/9.jpg)
www.devreach.com
Operating System
Trace Analysis
HDD RAM CPU LAN
Win32 API
CLR WinRT Windows
Perf
Counters
CPU Counters
Event
Tracing
for
Windows
COM
Our code
![Page 10: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/10.jpg)
www.devreach.com
Event Tracing for Windows
• General purpose, high speed tracing• Buffering and logging in kernel• Faster than printf
– 20,000 events per second while only using 5% CPU load on a P3 500MHz!
• Provider, Consumer, Controller model• Over 700 providers in Win7, ~900 in
Win8!• Aggregates all sources• Stack walking (on kernel events)
![Page 11: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/11.jpg)
www.devreach.com
ETW Kernel Providers
• Hardware Configuration Events • Disk-level I/O • File-level I/O • Image Layouts• Page Faults• Network I/O • Registry I/O • Process and Thread info
![Page 12: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/12.jpg)
www.devreach.com
ETW Application Providers
• Windows Firewall• WLAN, LAN• USB, Bluetooth• IIS, ASP.NET, CLR, HTTP.SYS• Security• … many more
![Page 13: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/13.jpg)
www.devreach.com
ETW Demo
![Page 14: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/14.jpg)
www.devreach.com
Side note: Symbols
• _NT_SYMBOL_PATH=SRV*c:\mss*http://msdl.microsoft.com/download/symbols
• Call stack information• Private managed code fields• Link to source code repository
![Page 15: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/15.jpg)
www.devreach.com
Concurrency Visualizer
• Utilization• Threads• Cores• Stack Walking
![Page 16: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/16.jpg)
www.devreach.com
Operating System
Trace Analysis
HDD RAM CPU LAN
Win32 API
CLR WinRT Windows
Perf
Counters
CPU Counters
Event
Tracing
for
Windows
COM
Our code
Profiler
![Page 17: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/17.jpg)
www.devreach.com
Profiler
• Instrumentation• Sampling• Concurrency• Stack Walking
![Page 18: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/18.jpg)
www.devreach.com
Profiler setup
• There can be only one• Uses environment variables– COR_ENABLE_PROFILING– COR_PROFILER – COR_XXX…
• Profiler API
![Page 19: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/19.jpg)
www.devreach.com
Instrumentation
• Profiler based• Requires full code recompilation• Best during development phase• Complete execution path
![Page 20: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/20.jpg)
www.devreach.com
Sampling
• Profiler based• Data collection on sample intervals• Suitable for long runs• Call Stack
![Page 21: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/21.jpg)
www.devreach.com
Concurrency
• Show resource contention• Based on Detours• Microsoft Research project now sold
for $10k• http://research.microsoft.com/en-us/projects/deto
urs/
• Stack Walking
![Page 22: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/22.jpg)
www.devreach.com
Profiling extras
• GC, Allocation• Tier Interaction• JavaScript• Production use• Licensing
![Page 23: Demystifying Visual Studio 2012 Performance Tools](https://reader031.vdocuments.us/reader031/viewer/2022022404/545ba768af79594f558b61ed/html5/thumbnails/23.jpg)
www.devreach.com
Profiler Demo