SlideShare une entreprise Scribd logo
1  sur  24
Demystifying Visual Studio
2012 Performance Tools




Martin Kulov | kulov.net
  www.devreach.com
You cannot manage,
What you do not measure




www.devreach.com
You cannot Improve,
What you do not measure




www.devreach.com
Trace Analysis

                             Our code


                    CLR         COM          WinRT


                             Win32 API


                          Operating System


                   HDD    RAM      CPU        LAN      CPU
                                                     Counters


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




www.devreach.com
Trace Analysis

                             Our code


                    CLR         COM          WinRT
                                                     Windows

                             Win32 API                 Perf

                                                     Counters
                          Operating System


                   HDD    RAM      CPU        LAN      CPU
                                                     Counters


www.devreach.com
Windows Performance Counters
•    They are …counters
•    Min interval – 1sec
•    Apps and kernel send Increment signals
•    Accessed by Windows API




    www.devreach.com
Perf Counters Demo




www.devreach.com
Trace Analysis

                             Our code


                    CLR         COM          WinRT
                                                     Windows
  Event
                             Win32 API                 Perf
 Tracing
                                                     Counters
    for                   Operating System

Windows
                   HDD    RAM      CPU        LAN      CPU
                                                     Counters


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)
    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
    www.devreach.com
ETW Application Providers
•    Windows Firewall
•    WLAN, LAN
•    USB, Bluetooth
•    IIS, ASP.NET, CLR, HTTP.SYS
•    Security
•    … many more



    www.devreach.com
ETW Demo




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




www.devreach.com
Concurrency Visualizer
•    Utilization
•    Threads
•    Cores
•    Stack Walking




    www.devreach.com
Trace Analysis
                              Profiler


                             Our code


                    CLR         COM          WinRT
                                                     Windows
  Event
                             Win32 API                 Perf
 Tracing
                                                     Counters
    for                   Operating System

Windows
                   HDD    RAM      CPU        LAN      CPU
                                                     Counters


www.devreach.com
Profiler
•    Instrumentation
•    Sampling
•    Concurrency
•    Stack Walking




    www.devreach.com
Profiler setup
• There can be only one
• Uses environment variables
   – COR_ENABLE_PROFILING
   – COR_PROFILER
   – COR_XXX…
• Profiler API



www.devreach.com
Instrumentation
•    Profiler based
•    Requires full code recompilation
•    Best during development phase
•    Complete execution path




    www.devreach.com
Sampling
•    Profiler based
•    Data collection on sample intervals
•    Suitable for long runs
•    Call Stack




    www.devreach.com
Concurrency
• Show resource contention
• Based on Detours
• Microsoft Research project now sold for
  $10k
• http://research.microsoft.com/en-us/projects/detours/
• Stack Walking



 www.devreach.com
Profiling extras
•    GC, Allocation
•    Tier Interaction
•    JavaScript
•    Production use
•    Licensing




    www.devreach.com
Profiler Demo




www.devreach.com
Thank you!
   @kulov
   www.kulov.net
   www.linkedin.com/in/kulov




Martin Kulov | kulov.net
  www.devreach.com

Contenu connexe

Tendances

BlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat Security Conference
 
Embedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBotsEmbedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBotsFrank Hunleth
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016Kuniyasu Suzaki
 
Building a Network IP Camera using Erlang
Building a Network IP Camera using ErlangBuilding a Network IP Camera using Erlang
Building a Network IP Camera using ErlangFrank Hunleth
 
A Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
A Comprehensive Implementation and Evaluation of Direct Interrupt DeliveryA Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
A Comprehensive Implementation and Evaluation of Direct Interrupt DeliveryCheng-Chun William Tu
 
SFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM VirtualizationSFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM VirtualizationLinaro
 
DvClub 2102 tlm based software control of uvcs for vertical verification re...
DvClub 2102   tlm based software control of uvcs for vertical verification re...DvClub 2102   tlm based software control of uvcs for vertical verification re...
DvClub 2102 tlm based software control of uvcs for vertical verification re...Amit Bhandu
 
When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4月锋 李
 
Windows kernel and memory io subsystem
Windows kernel and memory io subsystemWindows kernel and memory io subsystem
Windows kernel and memory io subsystemSisimon Soman
 
Introduction to windows kernel
Introduction to windows kernelIntroduction to windows kernel
Introduction to windows kernelSisimon Soman
 
HKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMHKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMLinaro
 
Audio in linux embedded
Audio in linux embeddedAudio in linux embedded
Audio in linux embeddedtrx2001
 
Kernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernelKernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernelAnne Nicolas
 
BKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 VirtualizationBKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 VirtualizationLinaro
 

Tendances (18)

BlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without device
 
Embedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBotsEmbedded Erlang, Nerves, and SumoBots
Embedded Erlang, Nerves, and SumoBots
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016
 
Building a Network IP Camera using Erlang
Building a Network IP Camera using ErlangBuilding a Network IP Camera using Erlang
Building a Network IP Camera using Erlang
 
A Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
A Comprehensive Implementation and Evaluation of Direct Interrupt DeliveryA Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
A Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
 
SFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM VirtualizationSFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM Virtualization
 
DvClub 2102 tlm based software control of uvcs for vertical verification re...
DvClub 2102   tlm based software control of uvcs for vertical verification re...DvClub 2102   tlm based software control of uvcs for vertical verification re...
DvClub 2102 tlm based software control of uvcs for vertical verification re...
 
When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4
 
Windows kernel and memory io subsystem
Windows kernel and memory io subsystemWindows kernel and memory io subsystem
Windows kernel and memory io subsystem
 
Introduction to windows kernel
Introduction to windows kernelIntroduction to windows kernel
Introduction to windows kernel
 
HKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMHKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARM
 
Os lectures
Os lecturesOs lectures
Os lectures
 
Windows io manager
Windows io managerWindows io manager
Windows io manager
 
#PDR15 - Voice API
#PDR15 - Voice API#PDR15 - Voice API
#PDR15 - Voice API
 
Audio in linux embedded
Audio in linux embeddedAudio in linux embedded
Audio in linux embedded
 
Root kit
Root kitRoot kit
Root kit
 
Kernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernelKernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernel
 
BKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 VirtualizationBKK16-504 Running Linux in EL2 Virtualization
BKK16-504 Running Linux in EL2 Virtualization
 

En vedette

.NET Memory Primer
.NET Memory Primer.NET Memory Primer
.NET Memory PrimerMartin Kulov
 
postBuild 2012 Highlights
postBuild 2012 HighlightspostBuild 2012 Highlights
postBuild 2012 HighlightsMartin Kulov
 
Performance Testing for Scalable Microservices - Martin Kulov
Performance Testing for Scalable Microservices - Martin KulovPerformance Testing for Scalable Microservices - Martin Kulov
Performance Testing for Scalable Microservices - Martin KulovMartin Kulov
 
Introduction to Garbage Collection
Introduction to Garbage CollectionIntroduction to Garbage Collection
Introduction to Garbage CollectionArtur Mkrtchyan
 
How to build CDN for your website
How to build CDN for your websiteHow to build CDN for your website
How to build CDN for your websiteMartin Kulov
 
Architecture of .net framework
Architecture of .net frameworkArchitecture of .net framework
Architecture of .net frameworkThen Murugeshwari
 

En vedette (7)

.NET Memory Primer
.NET Memory Primer.NET Memory Primer
.NET Memory Primer
 
postBuild 2012 Highlights
postBuild 2012 HighlightspostBuild 2012 Highlights
postBuild 2012 Highlights
 
Inside CoreCLR
Inside CoreCLRInside CoreCLR
Inside CoreCLR
 
Performance Testing for Scalable Microservices - Martin Kulov
Performance Testing for Scalable Microservices - Martin KulovPerformance Testing for Scalable Microservices - Martin Kulov
Performance Testing for Scalable Microservices - Martin Kulov
 
Introduction to Garbage Collection
Introduction to Garbage CollectionIntroduction to Garbage Collection
Introduction to Garbage Collection
 
How to build CDN for your website
How to build CDN for your websiteHow to build CDN for your website
How to build CDN for your website
 
Architecture of .net framework
Architecture of .net frameworkArchitecture of .net framework
Architecture of .net framework
 

Similaire à Demystifying Visual Studio 2012 Performance Tools

How to Minimize Cost and Risk for Developing Safety-Certifiable Systems
How to Minimize Cost and Risk for Developing Safety-Certifiable SystemsHow to Minimize Cost and Risk for Developing Safety-Certifiable Systems
How to Minimize Cost and Risk for Developing Safety-Certifiable SystemsReal-Time Innovations (RTI)
 
Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]vaishalisahare123
 
Intro To ECAT
Intro To ECATIntro To ECAT
Intro To ECATcloeven
 
AWS and GKE Migration and Multicloud
AWS and GKE Migration and MulticloudAWS and GKE Migration and Multicloud
AWS and GKE Migration and MulticloudChris Gaun
 
Dmitriy D1g1 Evdokimov - DBI Intro
Dmitriy D1g1 Evdokimov - DBI IntroDmitriy D1g1 Evdokimov - DBI Intro
Dmitriy D1g1 Evdokimov - DBI IntroDefconRussia
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Notpwlodek
 
Advanced embedded training details & syllabus - Wiztech
Advanced embedded training details & syllabus - WiztechAdvanced embedded training details & syllabus - Wiztech
Advanced embedded training details & syllabus - WiztechWiztech Automation Solutions
 
Know More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy KKnow More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy KRoopa Nadkarni
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_kIBM
 
Cross platform computer vision optimization
Cross platform computer vision optimizationCross platform computer vision optimization
Cross platform computer vision optimizationYoss Cohen
 
Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015Richard Bronson
 
Implementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migrationImplementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migrationYan Vugenfirer
 
Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented DesignRodrigo Campos
 
Extent3 exactpro testing_of_hft_gui
Extent3 exactpro testing_of_hft_guiExtent3 exactpro testing_of_hft_gui
Extent3 exactpro testing_of_hft_guiextentconf Tsoy
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnishRajnish Kalla
 

Similaire à Demystifying Visual Studio 2012 Performance Tools (20)

Choosing the right processor
Choosing the right processorChoosing the right processor
Choosing the right processor
 
How to Minimize Cost and Risk for Developing Safety-Certifiable Systems
How to Minimize Cost and Risk for Developing Safety-Certifiable SystemsHow to Minimize Cost and Risk for Developing Safety-Certifiable Systems
How to Minimize Cost and Risk for Developing Safety-Certifiable Systems
 
Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]Introduction to dot net framework by vaishali sahare [katkar]
Introduction to dot net framework by vaishali sahare [katkar]
 
Intro To ECAT
Intro To ECATIntro To ECAT
Intro To ECAT
 
.Net + novas tecnologias + win8
.Net + novas tecnologias + win8.Net + novas tecnologias + win8
.Net + novas tecnologias + win8
 
AWS and GKE Migration and Multicloud
AWS and GKE Migration and MulticloudAWS and GKE Migration and Multicloud
AWS and GKE Migration and Multicloud
 
Dmitriy D1g1 Evdokimov - DBI Intro
Dmitriy D1g1 Evdokimov - DBI IntroDmitriy D1g1 Evdokimov - DBI Intro
Dmitriy D1g1 Evdokimov - DBI Intro
 
2. operating systems
2. operating systems2. operating systems
2. operating systems
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Not
 
Advanced embedded training details & syllabus - Wiztech
Advanced embedded training details & syllabus - WiztechAdvanced embedded training details & syllabus - Wiztech
Advanced embedded training details & syllabus - Wiztech
 
Know More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy KKnow More About Rational Performance - Snehamoy K
Know More About Rational Performance - Snehamoy K
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k
 
Opmanager Workshop - Middle East
Opmanager Workshop - Middle EastOpmanager Workshop - Middle East
Opmanager Workshop - Middle East
 
Cross platform computer vision optimization
Cross platform computer vision optimizationCross platform computer vision optimization
Cross platform computer vision optimization
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015Richard Bronson Full Resume 2015
Richard Bronson Full Resume 2015
 
Implementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migrationImplementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migration
 
Performance Oriented Design
Performance Oriented DesignPerformance Oriented Design
Performance Oriented Design
 
Extent3 exactpro testing_of_hft_gui
Extent3 exactpro testing_of_hft_guiExtent3 exactpro testing_of_hft_gui
Extent3 exactpro testing_of_hft_gui
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnish
 

Dernier

AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Dernier (20)

AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Demystifying Visual Studio 2012 Performance Tools

  • 1. Demystifying Visual Studio 2012 Performance Tools Martin Kulov | kulov.net www.devreach.com
  • 2. You cannot manage, What you do not measure www.devreach.com
  • 3. You cannot Improve, What you do not measure www.devreach.com
  • 4. Trace Analysis Our code CLR COM WinRT Win32 API Operating System HDD RAM CPU LAN CPU Counters www.devreach.com
  • 5. 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 www.devreach.com
  • 6. Trace Analysis Our code CLR COM WinRT Windows Win32 API Perf Counters Operating System HDD RAM CPU LAN CPU Counters www.devreach.com
  • 7. Windows Performance Counters • They are …counters • Min interval – 1sec • Apps and kernel send Increment signals • Accessed by Windows API www.devreach.com
  • 9. Trace Analysis Our code CLR COM WinRT Windows Event Win32 API Perf Tracing Counters for Operating System Windows HDD RAM CPU LAN CPU Counters www.devreach.com
  • 10. 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) www.devreach.com
  • 11. 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 www.devreach.com
  • 12. ETW Application Providers • Windows Firewall • WLAN, LAN • USB, Bluetooth • IIS, ASP.NET, CLR, HTTP.SYS • Security • … many more www.devreach.com
  • 14. 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 www.devreach.com
  • 15. Concurrency Visualizer • Utilization • Threads • Cores • Stack Walking www.devreach.com
  • 16. Trace Analysis Profiler Our code CLR COM WinRT Windows Event Win32 API Perf Tracing Counters for Operating System Windows HDD RAM CPU LAN CPU Counters www.devreach.com
  • 17. Profiler • Instrumentation • Sampling • Concurrency • Stack Walking www.devreach.com
  • 18. Profiler setup • There can be only one • Uses environment variables – COR_ENABLE_PROFILING – COR_PROFILER – COR_XXX… • Profiler API www.devreach.com
  • 19. Instrumentation • Profiler based • Requires full code recompilation • Best during development phase • Complete execution path www.devreach.com
  • 20. Sampling • Profiler based • Data collection on sample intervals • Suitable for long runs • Call Stack www.devreach.com
  • 21. Concurrency • Show resource contention • Based on Detours • Microsoft Research project now sold for $10k • http://research.microsoft.com/en-us/projects/detours/ • Stack Walking www.devreach.com
  • 22. Profiling extras • GC, Allocation • Tier Interaction • JavaScript • Production use • Licensing www.devreach.com
  • 24. Thank you! @kulov www.kulov.net www.linkedin.com/in/kulov Martin Kulov | kulov.net www.devreach.com

Notes de l'éditeur

  1. Hardware configuration events CPUs, hard drives, NICs, video card, and ACPI power statesDisk-level I/O every I/O on the system, IRP flags, operation time in ms, number of bytes, diskFile-level I/O every access to every file on the system (tie it to the disk I/Os above)Image layoutsfilenames, locations in memory, and PIDs for every image in the systemPage faultspointers to instructions and pages whenever a fault occursNetwork I/O all TCP and UDP actions, including connects/accepts, transmits, recieves, etc.Registry I/O all Registry key/value creation/deletions/changes, registry flushes, etc.Process and thread info all creations/deletions of processes and threads