PerfView Hard Core CPU Investigations (Using CPU Counters) on Windows 10

One of the bread-and-butter investigations that people use the PerfView profiling tool for is a CPU investigation.   Indeed when you type ‘PerfView collect’ it collects the information needed for a CPU sampling information needed for such an investigation.   This CPU information consists of a stack taken every millisecond on each processor on the machine.   This gives…


Using PerfView (ETW) in Windows (Docker) Conainers

Virtual machines have been around on Windows for many years now, and for the most part you treat the exactly as if it was a physical machine.  In particular with respect to a tool like PerfView, we expect it to ‘just work’ and I don’t have to say anything special.  (Actually there is one things…


Debugging through the .NET Core framework using VSCode (e.g. on Linux)

In my blog ‘Debugging Through the .NET Core framework’ I give specific instructions for setting Visual Studio up so that you can debug into the source code for the .NET Core Runtime.      Since Version 2.1 of the .NET Core runtime, it is also possible to do this using the ‘Visual Studio Code’  editor. …


Update: Debugging Through the .NET Core Framework V2.0.3+ (Windows)

This blog shows you how to debug through the .NET Core source code using Visual Studio.  There is a companion blog entry that indicates how to do it for Visual Studio Code (e.g. what you would use on Linux). As you may or may not know, for a couple years in addition to running .NET…


PerfView: How to .NET Core Framework Symbols and Source (On Windows)

In a previous blog on using PerfView with .NET Core  I pointed out that free PerfView profiling tool (see PerfView tutorial for more)  should ‘just work’ to collect performance data for .NET Core scenarios on windows operating system.    (On Linux,  only CPU analysis can be done current see CPU Analysis on Linux using PerfView for more). However…


Performance Analysis on .NET Core applications with PerfView (on Windows)

Back in July, the .NET Runtime Team shipped the first official version of .NET Core.    .NET Core is a stand-alone down version of the .NET Runtime that is Open Source (it lives in the .NET Core GitHub Repo) and cross platform (runs on Windows, OSX and a variety of Linux distributions).     Version 5 of ASP NET…


Collecting Performance Data on Linux using PerfCollect and PerfView.

In a previous post on Linux Tracing I described how it was possible to collect traces of CPU samples on Linux machines and view them with PerfView. Basically there is a Bash script called PerfCollect that turns on the Linux kernel’s CPU sampling.   You also need to set some environment variables if you are running…


PerfView is now Open Source On GitHub

I am happy to announce, that the PerfView source code is now open source as a GitHub repository.    It is available at The readme associated with the GitHub  repository has getting started information (how to fetch the repository, how to build, test and deploy the code.     We use Visual Studio 2015.   You can download a free copy of …


Encore Presentation Measure Early and Often For Performance

Back in 2008 I wrote a two-part MSDN article (April 2008 and May 2008) about the basics of performance investigation entitled ‘Measure Early And Often for Performance’.   At the time I also wrote a blog linking those articles. Well it seems that after about 8 years, MSDN archives articles and so the links got broken….