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….


Things I learned about Performance Investigation : My talk at Perf@Scale conference

Last Wednesday, I gave a talk at the one day Perf@Scale conference entitled ‘Keys to Actionable Performance Investigations’.  This talk is meant to tell people what I learned over my 10 years of doing performance investigations, and in particular what of that ‘transfers’ to any investigation. My main take-aways are You need detailed data (don’t guess around with top level counters…