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…


Encore Presentation: Understand the Impact of Low-Lock Techniques in Multithreaded Apps

Back in October 2005 I wrote a MSDN article entitled Understand the Impact of Low-Lock Techniques in Multithreaded Apps. This is a follow-on article to the more fundamental article What Every Dev Must Know About Multithreaded Apps, which I mentioned in my last blog post.  Like the ‘What every Dev Must know…’ article, I this article…


Encore Presentation: What Every Dev Must Know About Multithreaded Apps

 Back in August 2005 I wrote a MSDN article entitled What Every Dev Must Know About Multithreaded Apps, in which I describe the fundamentals of multi-threaded programming.   Although it was written over 10 years ago now, frankly, it is just as correct and relevant today.  I discovered, however that the link to this article is…


Histograms with PerfView (Ad-hoc Data Analysis).

In my blog on external profile data in PerfView as well as my blog on disk space analysis and Linux investigations I showed that PerfView can be used for almost any data analysis that involves hierarchical data (which covers a lot of ground).   In this blog entry I will show you that PerfView’s stack viewer can be…


Using PerfView on ‘External’ data (e.g. Other Profilers)

Executive Summary If you want to emit JSON or XML data that PerfView can simply view in the stack viewer, see the Help -> Viewing External Data menu entry. Details In my blog on using PerfView with Linux I noted that it is relatively easy to make PerfView consume other sources of stack-like performance data.     In my…