Year: 2013

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…

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…

I am happy to report that the TraceEvent Library Nuget Package and the TraceEvent Library Samples Nuget Package have been published at www.nuget.org. If you look for them be sure to set the filtering to include ‘prerelease’ or you will not see them. You can see this blog entry for the formal announcement of the…

Up until now, when I have demonstrated how to use the System.Diagnostics.Tracing.EventSource to generate events, I have been using the PerfView tool to turn on the EventSources as well as view the resulting events. This is because PerfView was on the ‘cutting edge’ of what I will call ‘registration free’ ETW that EventSources use. Well…

One of the more common questions we get about the System.Diagnostics.Tracing.EventSource class is whether it can be used to log message to the Windows Event Log (that is can be viewed with eventvwr.exe). This EventLog support is also called ‘Channel support’ because that is the official name for a ‘stream of events’ in the Windows…

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…

Do you have a windows store JavaScript/HTML applications that needs performance tuning? PerfView can handle JavaScript. In particular It automatically collects the necessary events so that it can decode the names of the JavaScript functions on any stacks that are captured. (Note however that if your JavaScript has been obfuscated, you do have problem). When you use…

In previous blocks on TraceEvent I shows you how easy it was to start up ETW sessions to collect information generated by System.Diagnnostics.Tracing.EventSource classes (typically logging that you yourself did). But I also mentioned in other blogs that the one of the real strengths of ETW was the fact that you get to correlate lots…

If you have been following my blog at all, you have seen my articles about System.Diagnostics.Tracing.EventSource, a class that introduced in V4.5 of the .NET Runtime for production logging. This class replaces the System.Diagnostics.TraceSource class and we strongly encourage people to consider using EventSource instead of TraceSource for any future work (You can events from one go…

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),…