Why doesn’t my EventSource produce any events?

This is a quick entry to warn about a pitfall that you are likely to run into sooner or later if you build or maintain EventSources.   As I have blogged about, it is very easy to get started with EventSources.   Here is some code that someone might write    And then use it by using by doing…

16

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

An End-To-End ETW Tracing Example: EventSource and TraceEvent

I have already made a series of blogs about EventSource starting with my tutorial introduction to EventSource.  This gives you enough information to generate events, and using the PerfView tool, lets you look at these events in a viewer.  This is great for a broad variety of ad-hoc scenarios.     However what if you want to go…

16

Collecting ETW/PerfView data on an Windows RT (WinRT, ARM, Surface) device

If any of you have tried to run PerfView a Surface or other WinRT device, you will find that it does not work.    Basically any program that is NOT a windows store application needs to be signed with a special key or it simply will fail to run on a ‘locked’ device (most devices are…

0

Video: Wall clock time analysis of ASP.NET Applications using PerfView

ASP.NET applications are one of the more common uses of .NET code today, and the PerfView tool has some special support for profiling them.  I created the video ‘Wall Clock Analysis of ASP.NET Applications’ as part of the PerfView tutorial video series.  You can learn more about wall clock time analysis in general (and find useful videos)…

0

Wall clock time analysis using PerfView

By default when you collect data using PerfView you are collecting the right events to do a CPU time investigation.    However there are other things that can slow your program down beside using too much CPU time.  It is not uncommon to be disk bound (startup scenario are often like this), or network bound, or are…

4

Video Tutorial on doing .NET Memory investigations using PerfView

I have finished three new videos that are about doing .NET GC Heap memory investigations using the PerfView tool and have posted them to Channel Nine. Basics of .NET GC Snapshots Investigating Memory Leaks: Part 1 Collecting the data Investigating Memory Leaks: Part 2 Analyzing the data The first video gives you the basics.   Determining…

2

Three new Videos on using PerfView’s Event View (And Using it in conjunction with System.Diagnostics.Tracing.EventSource)

  I have just posted the following 3 videos to the my Channel 9 PerfView Tutorial Series. Perfview Tutorial 6 – The Event Viewer Basics PerfView Tutorial 7 – Using the Event Viewer in ASP.NET Scenarios PerfView Tutorial 8 – Generating Your Own Events with EventSources  If you are not already comforable with PerfView’s event viewer,…

7

ETW in C#: Controlling which events get logged in an System.Diagnostics.Tracing.EventSource

In my EventSource demo blog entry we defined an EventSource and turned on the logging with the command PerfView /OnlyProviders=*MinimalEventSource run eventSourceDemo.exe Which turned on all the events defined in the ‘MinimalEventSource’ we defined.    As you add more events to your EventSource, it becomes more and more likely that you will want more control over which…

23