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…

3

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…

2

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…

4

PerfView Version V1.7 released to the web.

It has been a 9 months since the last public version of PerfView, so today I have updated the PerfView Download location from version 1.6 to Version 1.7.   Here are some of the new features that I think are noteworthy.  You can look at the Help -> Release Notes for more information on detailed changes. …

26

TraceEvent NuGet package moves from Beta to Release Candidate (RC) status

In my August blog I announced that the TraceEvent library for parsing Event Tracing for Windows (ETW) information was released as a Nuget package. Well I have updated that package to with several months of updates and declared it a release candidate.   You can get the TraceEvent Nuget package or if you are new to the package I…

0

PerfView version 1.5 has been released

It has been over 6 months since the last public release of PerfView, so I felt it was time to refresh the download center.  For those of you who don’t know about it is frankly the tool that I use to do most of my performance investigations with.   If you have a performance issue on…

0

Updated Instructions for collecting ETW data on a ARM WinRT device (e.g. Surface)

I have updated my blog entry on collecting ETW data on an ARM WinRT device.   Previously I told you to use the WPR’s ‘GeneralProfile’ to collect the data.  This is OK for some investigations, but does not collect all the same events that PerfView would have collected (most notably GC events, JIT compile events and async Task…

0

A Lab on investigating Memory Performance with PerfView

As part of a conference that I participated in this week, I have created a lab on using PerfView to investigate Memory issues.   The lab covers both managed and unmanaged code techniques.  The ZIP file below of two Visual Studio 2012 projects which create leaky apps (one C++ and one C#), as well as an MHT file (multi file HTML),…

4

Using TraceSource to log ETW data to a file

Yesterday’s blog post was showing how you can use EventSource to generate ETW events and the TraceEvent library to read them in ‘real time’.   Today we will do a slight variation on that example.  Instead of reading the events in real time, we will simply log them to a file, and then later (it happens…

8

How many samples are enough when using a sample based profiler in a performance Investigation?

Performance analysis is my job, and so I answer a lot of questions about perf, and this blog is about a frequently asked question I get.  When doing CPU analysis, many profilers, including the PerfView tool are sampling profilers.   In particular, for PerfView, by default every millisecond it will stop each processor and take a stack trace.  …

0