SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Analyze Your Code
With Visual Studio 2015
Diagnostic Tools
Ken Cenerelli
@KenCenerelli
About Me
Twitter: @KenCenerelli
Email: Ken_Cenerelli@Outlook.com
Blog: kencenerelli.wordpress.com
LinkedIn: linkedin.com/in/kencenerelli
Bio:
 Programmer Writer
 Microsoft MVP - Visual Studio and
Development Technologies
 Microsoft TechNet Wiki Guru
 Co-Organizer of CTTDNUG
 Technical reviewer of multiple books
CTTDNUG
Ken Cenerelli
Source: http://dilbert.com/strip/1995-11-13
Typical Debugging Session
1. Realize there is a bug
2. Use best-guess scenario to place a breakpoint
3. Reproduce steps and hope your breakpoint is hit before bug appears
4. Breakpoint is hit, examine the code by stepping through
5. Root cause not identified
6. Repeat steps 2 thru 5 until bug is discovered
Old Diagnostic Tools
• In Visual Studio 2013, the tools were not well advertised
• Instruments like Memory Usage and CPU Usage were made available in the Performance and
Diagnostics hub in VS 2013 Update 2
• They are found by clicking on Performance and Diagnostics in the Debug or Analyze menu
New Diagnostic Tools Window
(aka Why Should I Care?)
• Visual Studio 2015 brings Diagnostic Tools into the debugging experience when you hit F5
• The new window is active during the debugging session
• It is designed to change your debugging workflow
• You no longer have to create breakpoints, hit F5, wait for the breakpoint to be hit, and then
check the Locals window
• You should now think, “What did IntelliTrace find?”
Diagnostic Tools Window Components
• IntelliTrace UI is revamped and now is in Diagnostic Tools Window
• Memory and CPU usage graphs added
• Take memory snapshots and time sections of code with PerfTips
Supported SKUs
• Diagnostic Tools can be found in the following Visual Studio editions:
Visual Studio
Code
Visual Studio
Community
Visual Studio
Professional
Visual Studio
Enterprise
IntelliTrace
+ more event
categories
▪
Memory Usage ▪ ▪ ▪
CPU Usage ▪ ▪ ▪
PerfTips ▪ ▪ ▪
Supported Project Types
Diagnostic Tools are available in all the following project types:
• Managed WPF, WinForms, and Console projects
• Native Win32, Console, and MFC projects
• ASP.NET projects running on local IIS and IIS Express (including MVC & Web API)
• Managed or Native Windows Store projects
• Debugging sessions started using Debug > Attach to Process
• Debugging apps running on remote desktop devices
Non-supported Project Types
No support currently for the following projects:
• Windows Store projects that are using JavaScript
• Windows Store projects that are running on a Windows Phone
• Debugging when Managed or Native Compatibility Mode is checked in Tools > Options >
Debugging
• Native Phone projects (Cordova, Xamarin)
IntelliTrace
• IntelliTrace is a recorder for your debugging sessions
• It captures the call stack along with local variable info for that moment of time
• You can go back in time with Historical Debugging
• Captured events are represented on a timeline
• The Events timeline is split into three tracks: Break Events, Output Events, and IntelliTrace Events
• It provides the same events you would get from implementing extensive logging frameworks
(log4net, NLog) but without the work
PerfTips
• Provides timing of previously executed code blocks
• No more Stopwatch.Start / Stopwatch.Elapsed
• Runs in all types of projects
• Works with remote debugging in Azure
• PerfTips discounts network latency issues when debugging on a remote machine
• TIP: Take multiple measurements to discover the range and median values of the code being
measured
Demo
• Diagnostic Tools Window
• IntelliTrace Events
• PerfTips
Visual Studio 2015 Update 1
• Improvements to the Events tab of the Diagnostic Tools Window:
• Improved the filtering menu
• Added the ability to search
• Added category prefixes to all events
Memory Usage
• Monitor memory usage of your app and take snapshots of your memory so that you can inspect
the contents of the heap to find memory leaks
• Includes memory allocated on both the managed and native heaps
• Tied to the debugger your project is using (Managed Only, Native Only, or Mixed Mode)
• Records only the time your application is running and filters out the time spent in break states
• Can snapshot sections of your code before and after it is run to get the delta
• Heap analysis view for deeper investigation of the process memory by type
CPU Usage
• In many cases the CPU is the bottleneck when performance problems arise
• It can be difficult to know where to start when you want to make your code run faster
• Measures the CPU’s resources in terms of how much time each core in the CPU spends
executing your code
• Lets you see which of your functions are using the most CPU
Demo
• Memory Usage
Visual Studio 2015 Update 1
• Improvements to CPU profiling in the Diagnostic Tools Window:
• Do full CPU profiling without stopping your debug session
• Control both the execution of the application as well as the collection of CPU profiling data
• Drill into a section of code by hitting a breakpoint, turning profiling on, and then running to the next
breakpoint
Start Diagnostic Tools Without Debugging
• Provides a true representation of your CPU and Memory
• Removes the overhead added by the debugger when using the Diagnostic Tools window
• Full analysis only occurs after your profiling session is complete
• Contains additional features like Application Timeline and Network Usage
• Tools can be combined by checking more than one box before you click Start so that you can
cross-correlate data and diagnose performance issues more effectively
• TIP: Try running in Release build mode to make sure the debugger is not the cause of your slow
downs
Demo
• Start Diagnostic Tools Without Debugging
Additional Diagnostic Tools
• IntelliTrace Standalone Collector
• Referred to as Non-Live Debugging, it is when your application executes without Visual Studio attached
• Application data is recorded to an .itrace file which can then be imported into VS for debugging
• Application Insights
• Allows you to monitor your deployed live applications through telemetry data stored in Azure
• Understand how users use your apps
• Detect issues quicker and solve the right problems faster
• PerfView
• PerfView is a performance-analysis tool that helps isolate CPU and memory-related performance issues
• A standalone tool that goes deeper than Diagnostic Tools
Resources
• Visual Studio ALM Blog:
• http://bit.ly/1Msso3F
• Channel 9 Videos:
• http://bit.ly/1Le96gs
• http://bit.ly/1MNNJUk
• http://bit.ly/1MGWMuB
• MSDN Magazine Articles:
• http://bit.ly/1IZOds9
• http://bit.ly/1OJ3NgK
Summary
• Slides:
• Through CTTDNUG
• Blog (kencenerelli.wordpress.com)
• SlideShare (slideshare.net/KenCenerelli)
• Contact Details:
• @KenCenerelli
• Ken_Cenerelli@Outlook.com

Weitere ähnliche Inhalte

Was ist angesagt?

Automated testing web application
Automated testing web applicationAutomated testing web application
Automated testing web application
Kiattikhun Prathumma
 
Silverlight2 Unit Testing Slides
Silverlight2 Unit Testing SlidesSilverlight2 Unit Testing Slides
Silverlight2 Unit Testing Slides
Andre John Cruz
 
automation presentation
automation presentationautomation presentation
automation presentation
Yogesh Dongare
 
Automation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional TesterAutomation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional Tester
VijayChowthri Nagaprakasham
 
Teaser Deck
Teaser DeckTeaser Deck
Teaser Deck
Joseph
 

Was ist angesagt? (20)

Top 20 best automation testing tools
Top 20 best automation testing toolsTop 20 best automation testing tools
Top 20 best automation testing tools
 
Automated testing web application
Automated testing web applicationAutomated testing web application
Automated testing web application
 
Automated Desktop and Web Testing Webinars
Automated Desktop and Web Testing WebinarsAutomated Desktop and Web Testing Webinars
Automated Desktop and Web Testing Webinars
 
Comparison manual & automation
Comparison manual & automationComparison manual & automation
Comparison manual & automation
 
Automated vs manual testing
Automated vs manual testingAutomated vs manual testing
Automated vs manual testing
 
Silverlight2 Unit Testing Slides
Silverlight2 Unit Testing SlidesSilverlight2 Unit Testing Slides
Silverlight2 Unit Testing Slides
 
TELERIK COURSE
TELERIK COURSETELERIK COURSE
TELERIK COURSE
 
bqurious Test Automation & Management Suite
bqurious Test Automation & Management Suitebqurious Test Automation & Management Suite
bqurious Test Automation & Management Suite
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testing
 
Software testing tools
Software testing toolsSoftware testing tools
Software testing tools
 
automation presentation
automation presentationautomation presentation
automation presentation
 
Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)
 
10 Benefits of Automated Testing
10 Benefits of Automated Testing10 Benefits of Automated Testing
10 Benefits of Automated Testing
 
Telerik Test studio
Telerik Test studio Telerik Test studio
Telerik Test studio
 
Automation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional TesterAutomation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional Tester
 
Teaser Deck
Teaser DeckTeaser Deck
Teaser Deck
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Software testing tools
Software testing toolsSoftware testing tools
Software testing tools
 
Selenium RC, Selenium WebDriver and HP LoadRunner
Selenium RC, Selenium WebDriver and HP LoadRunnerSelenium RC, Selenium WebDriver and HP LoadRunner
Selenium RC, Selenium WebDriver and HP LoadRunner
 
Mobile Test Automation Webinars
Mobile Test Automation WebinarsMobile Test Automation Webinars
Mobile Test Automation Webinars
 

Andere mochten auch

BDC VUB # 150 TTRC modified oct 26_KDK
BDC VUB # 150 TTRC modified oct 26_KDKBDC VUB # 150 TTRC modified oct 26_KDK
BDC VUB # 150 TTRC modified oct 26_KDK
Kevin Kelley
 

Andere mochten auch (16)

Ficha de videos
Ficha de videosFicha de videos
Ficha de videos
 
Proposal asep jemi
Proposal asep jemiProposal asep jemi
Proposal asep jemi
 
#12 Post Perforation Repair with MTA on Mesial Aspect Subcrestally
#12 Post Perforation Repair with MTA on Mesial Aspect Subcrestally#12 Post Perforation Repair with MTA on Mesial Aspect Subcrestally
#12 Post Perforation Repair with MTA on Mesial Aspect Subcrestally
 
Perhe- ja kasvuyritysten rahoituksen hakeminen – haasteet ja rahoittajan ratk...
Perhe- ja kasvuyritysten rahoituksen hakeminen – haasteet ja rahoittajan ratk...Perhe- ja kasvuyritysten rahoituksen hakeminen – haasteet ja rahoittajan ratk...
Perhe- ja kasvuyritysten rahoituksen hakeminen – haasteet ja rahoittajan ratk...
 
Los tres filtros de sĂłcrates
Los tres filtros de sĂłcratesLos tres filtros de sĂłcrates
Los tres filtros de sĂłcrates
 
Socrates
SocratesSocrates
Socrates
 
Omistaja-yrittäjän verotuksen optimointi
Omistaja-yrittäjän verotuksen optimointiOmistaja-yrittäjän verotuksen optimointi
Omistaja-yrittäjän verotuksen optimointi
 
MicroMedia - Revenue Marketing
MicroMedia - Revenue MarketingMicroMedia - Revenue Marketing
MicroMedia - Revenue Marketing
 
BDC VUB # 150 TTRC modified oct 26_KDK
BDC VUB # 150 TTRC modified oct 26_KDKBDC VUB # 150 TTRC modified oct 26_KDK
BDC VUB # 150 TTRC modified oct 26_KDK
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Database Migration: Simple, Cross-Engine and Cross-Platform Migrations with M...
Database Migration: Simple, Cross-Engine and Cross-Platform Migrations with M...Database Migration: Simple, Cross-Engine and Cross-Platform Migrations with M...
Database Migration: Simple, Cross-Engine and Cross-Platform Migrations with M...
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Test & Dev on the AWS Cloud
Test & Dev on the AWS CloudTest & Dev on the AWS Cloud
Test & Dev on the AWS Cloud
 
Video production pedagogy
Video production pedagogyVideo production pedagogy
Video production pedagogy
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
Markkinoinnin ja myynnin yhteispeli 2016
Markkinoinnin ja myynnin yhteispeli 2016Markkinoinnin ja myynnin yhteispeli 2016
Markkinoinnin ja myynnin yhteispeli 2016
 

Ähnlich wie Analyze Your Code With Visual Studio 2015 Diagnostic Tools

Cardiff University FTS presentation 2011 (MS Word plug in)
Cardiff University FTS presentation 2011 (MS Word plug in)Cardiff University FTS presentation 2011 (MS Word plug in)
Cardiff University FTS presentation 2011 (MS Word plug in)
salsalamah
 
Deepak_Resume_Automation
Deepak_Resume_AutomationDeepak_Resume_Automation
Deepak_Resume_Automation
Deepak Pandey
 

Ähnlich wie Analyze Your Code With Visual Studio 2015 Diagnostic Tools (20)

Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
 
Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Cardiff University FTS presentation 2011 (MS Word plug in)
Cardiff University FTS presentation 2011 (MS Word plug in)Cardiff University FTS presentation 2011 (MS Word plug in)
Cardiff University FTS presentation 2011 (MS Word plug in)
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
Development Processes and Tooling
Development Processes and ToolingDevelopment Processes and Tooling
Development Processes and Tooling
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
 
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
 
Visual Studio Profiler
Visual Studio ProfilerVisual Studio Profiler
Visual Studio Profiler
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing Tools
 
White box testing
White box testingWhite box testing
White box testing
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Deepak_Resume_Automation
Deepak_Resume_AutomationDeepak_Resume_Automation
Deepak_Resume_Automation
 
Opticon18: Developer Night
Opticon18: Developer NightOpticon18: Developer Night
Opticon18: Developer Night
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
 

Mehr von Ken Cenerelli

An Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 DevelopmentAn Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 Development
Ken Cenerelli
 

Mehr von Ken Cenerelli (14)

ASP.NET Core deployment options
ASP.NET Core deployment optionsASP.NET Core deployment options
ASP.NET Core deployment options
 
No SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDBNo SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDB
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile apps
 
ASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bits
 
Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 
Building high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application InsightsBuilding high performance software with Microsoft Application Insights
Building high performance software with Microsoft Application Insights
 
An Introduction to Universal Windows Apps
An Introduction to Universal Windows AppsAn Introduction to Universal Windows Apps
An Introduction to Universal Windows Apps
 
Build end-to-end video experiences with Azure Media Services
Build end-to-end video experiences with Azure Media ServicesBuild end-to-end video experiences with Azure Media Services
Build end-to-end video experiences with Azure Media Services
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure
 
Building Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile ServicesBuilding Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile Services
 
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
Maximizing code reuse between Windows Phone 8 and Windows 8 (That Conference ...
 
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
Maximizing code reuse between Windows Phone 8 and Windows 8 (DevTeach Toronto...
 
An Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 DevelopmentAn Introduction to Windows Phone 7 Development
An Introduction to Windows Phone 7 Development
 
Introduction To Umbraco
Introduction To UmbracoIntroduction To Umbraco
Introduction To Umbraco
 

KĂźrzlich hochgeladen

KĂźrzlich hochgeladen (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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 Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Analyze Your Code With Visual Studio 2015 Diagnostic Tools

  • 1. Analyze Your Code With Visual Studio 2015 Diagnostic Tools Ken Cenerelli @KenCenerelli
  • 2. About Me Twitter: @KenCenerelli Email: Ken_Cenerelli@Outlook.com Blog: kencenerelli.wordpress.com LinkedIn: linkedin.com/in/kencenerelli Bio:  Programmer Writer  Microsoft MVP - Visual Studio and Development Technologies  Microsoft TechNet Wiki Guru  Co-Organizer of CTTDNUG  Technical reviewer of multiple books CTTDNUG Ken Cenerelli
  • 3.
  • 5. Typical Debugging Session 1. Realize there is a bug 2. Use best-guess scenario to place a breakpoint 3. Reproduce steps and hope your breakpoint is hit before bug appears 4. Breakpoint is hit, examine the code by stepping through 5. Root cause not identified 6. Repeat steps 2 thru 5 until bug is discovered
  • 6. Old Diagnostic Tools • In Visual Studio 2013, the tools were not well advertised • Instruments like Memory Usage and CPU Usage were made available in the Performance and Diagnostics hub in VS 2013 Update 2 • They are found by clicking on Performance and Diagnostics in the Debug or Analyze menu
  • 7. New Diagnostic Tools Window (aka Why Should I Care?) • Visual Studio 2015 brings Diagnostic Tools into the debugging experience when you hit F5 • The new window is active during the debugging session • It is designed to change your debugging workflow • You no longer have to create breakpoints, hit F5, wait for the breakpoint to be hit, and then check the Locals window • You should now think, “What did IntelliTrace find?”
  • 8. Diagnostic Tools Window Components • IntelliTrace UI is revamped and now is in Diagnostic Tools Window • Memory and CPU usage graphs added • Take memory snapshots and time sections of code with PerfTips
  • 9. Supported SKUs • Diagnostic Tools can be found in the following Visual Studio editions: Visual Studio Code Visual Studio Community Visual Studio Professional Visual Studio Enterprise IntelliTrace + more event categories ▪ Memory Usage ▪ ▪ ▪ CPU Usage ▪ ▪ ▪ PerfTips ▪ ▪ ▪
  • 10. Supported Project Types Diagnostic Tools are available in all the following project types: • Managed WPF, WinForms, and Console projects • Native Win32, Console, and MFC projects • ASP.NET projects running on local IIS and IIS Express (including MVC & Web API) • Managed or Native Windows Store projects • Debugging sessions started using Debug > Attach to Process • Debugging apps running on remote desktop devices
  • 11. Non-supported Project Types No support currently for the following projects: • Windows Store projects that are using JavaScript • Windows Store projects that are running on a Windows Phone • Debugging when Managed or Native Compatibility Mode is checked in Tools > Options > Debugging • Native Phone projects (Cordova, Xamarin)
  • 12. IntelliTrace • IntelliTrace is a recorder for your debugging sessions • It captures the call stack along with local variable info for that moment of time • You can go back in time with Historical Debugging • Captured events are represented on a timeline • The Events timeline is split into three tracks: Break Events, Output Events, and IntelliTrace Events • It provides the same events you would get from implementing extensive logging frameworks (log4net, NLog) but without the work
  • 13. PerfTips • Provides timing of previously executed code blocks • No more Stopwatch.Start / Stopwatch.Elapsed • Runs in all types of projects • Works with remote debugging in Azure • PerfTips discounts network latency issues when debugging on a remote machine • TIP: Take multiple measurements to discover the range and median values of the code being measured
  • 14. Demo • Diagnostic Tools Window • IntelliTrace Events • PerfTips
  • 15. Visual Studio 2015 Update 1 • Improvements to the Events tab of the Diagnostic Tools Window: • Improved the filtering menu • Added the ability to search • Added category prefixes to all events
  • 16. Memory Usage • Monitor memory usage of your app and take snapshots of your memory so that you can inspect the contents of the heap to find memory leaks • Includes memory allocated on both the managed and native heaps • Tied to the debugger your project is using (Managed Only, Native Only, or Mixed Mode) • Records only the time your application is running and filters out the time spent in break states • Can snapshot sections of your code before and after it is run to get the delta • Heap analysis view for deeper investigation of the process memory by type
  • 17. CPU Usage • In many cases the CPU is the bottleneck when performance problems arise • It can be difficult to know where to start when you want to make your code run faster • Measures the CPU’s resources in terms of how much time each core in the CPU spends executing your code • Lets you see which of your functions are using the most CPU
  • 19. Visual Studio 2015 Update 1 • Improvements to CPU profiling in the Diagnostic Tools Window: • Do full CPU profiling without stopping your debug session • Control both the execution of the application as well as the collection of CPU profiling data • Drill into a section of code by hitting a breakpoint, turning profiling on, and then running to the next breakpoint
  • 20. Start Diagnostic Tools Without Debugging • Provides a true representation of your CPU and Memory • Removes the overhead added by the debugger when using the Diagnostic Tools window • Full analysis only occurs after your profiling session is complete • Contains additional features like Application Timeline and Network Usage • Tools can be combined by checking more than one box before you click Start so that you can cross-correlate data and diagnose performance issues more effectively • TIP: Try running in Release build mode to make sure the debugger is not the cause of your slow downs
  • 21. Demo • Start Diagnostic Tools Without Debugging
  • 22. Additional Diagnostic Tools • IntelliTrace Standalone Collector • Referred to as Non-Live Debugging, it is when your application executes without Visual Studio attached • Application data is recorded to an .itrace file which can then be imported into VS for debugging • Application Insights • Allows you to monitor your deployed live applications through telemetry data stored in Azure • Understand how users use your apps • Detect issues quicker and solve the right problems faster • PerfView • PerfView is a performance-analysis tool that helps isolate CPU and memory-related performance issues • A standalone tool that goes deeper than Diagnostic Tools
  • 23. Resources • Visual Studio ALM Blog: • http://bit.ly/1Msso3F • Channel 9 Videos: • http://bit.ly/1Le96gs • http://bit.ly/1MNNJUk • http://bit.ly/1MGWMuB • MSDN Magazine Articles: • http://bit.ly/1IZOds9 • http://bit.ly/1OJ3NgK
  • 24. Summary • Slides: • Through CTTDNUG • Blog (kencenerelli.wordpress.com) • SlideShare (slideshare.net/KenCenerelli) • Contact Details: • @KenCenerelli • Ken_Cenerelli@Outlook.com

Hinweis der Redaktion

  1. IntelliTrace used to be a tab on Solution Explorer
  2. Diagnostic Tools mean tools that allow you to see historical information (data collected over time), as opposed to just a single moment in time (like when you are stopped at a live breakpoint). Debugging and Profiling are no longer two separate activities Eliminates the noise from the code that doesn’t interest you This can significantly reduce the amount of time it takes you to diagnose an issue
  3. All three boxes share a common timeline Can align events across all three graphs
  4. InteliTrace is on by default Break All to break on every thread All about workflows. No need for breakpoints - just hit Break All
  5. Memory Usage is same as one in Diagnostic Tools Window