Vance Morrison's Weblog

Vance Morrison is currently an Architect on the .NET Runtime Team, specializing in performance issues with the runtime or managed code in general.

Browse by Tags

Tagged Content List
  • Blog Post: 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...
  • Blog Post: 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 Windows and don't...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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 locked)....
  • Blog Post: 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...
  • Blog Post: Introduction Tutorial: Logging ETW events in C#: System.Diagnostics.Tracing.EventSource

    Event Tracing for Windows (ETW) is a fast, scalable logging mechanism built into the Windows operating system. It is powerful because of three reasons The operating system comes pre-wired with a bunch of useful events It can capture stack traces along with the event, which is INCREDIBLY USEFUL...
  • Blog Post: Next Version of PerfView has been released!

    For those that don't know, PerfView is a performance profiling tool that can be used to diagnose a broad range of performance problems. We released a free copy of this to the web back in January. Well, it has been over 6 months since that release and I have been busy adding various capabilities to the...
  • Blog Post: 2 more Videos on using the PerfView performance tool.

    UPDATE : These (and other) videos are now on Channel 9 as part of the PerfView Tutorial Series . In my previous Post I posted a ZIP file containing 3 videos using the new PerfView tool. Here I add another 2 videos to the collecition. The should be unpacked into the same directory as the first 3...
  • Blog Post: 3 Videos (basic collection and CPU investion) using the PerfView Performance Tool

    UPDATE : These (and other) videos are now on Channel 9 as part of the PerfView Tutorial Series . In my previous Post I mentioned the new PerfView tool, which is the tool that I use for most of my performance investigations. If you have clicked tried to access the video's link in PerfView you have...
  • Blog Post: Publication of the PerfView performance analysis tool!

    I know it is has been a while since my last posting, but long ago I decided that I would not write just to have something to write about but rather only when I had something I really something useful to say. Well do have something really useful to say. For a long time I have wanted to give very specific...
  • Blog Post: Slides for a talk on Performance

    I am giving a .NET Performance talk for the users group at the Royal Bank of Canada, and I am posting the slides for the talk here for future reference. (see power point document attached to this entry below). Anyone who has heard me speak will see recognise the themes: Good perf does not just happen...
  • Blog Post: Slides for our All Day PDC 2008 talks on: Performance By Design

    Every year or so, when Microsoft believes it has something useful to say to develoeprs it hosts a Programmer Developer's Conference. It is doing so this year from 10/27 through 10/30. Between Rico Marani, Mark Friedman and myself, we gave a all day talk on writing high performance software for the .NET...
  • Blog Post: Slides for PDC 2008 Talk: Performance By Design: Measuring CPU Time

    These are the slides for the talk I gave on 10/26/2008 at the Programmer Developer Converence (PDC) on the basics of performance investigation
  • Blog Post: Links to MSDN articles I have written on designing for performance

    I just happen to notice that I don't have any links from my blog to some recient MSDN articles I wrote on performance. I want to quickly correct his with this posting. There is actually a very nice summary page that MSDN created that gathers together all the articles I have written over time. The...
  • Blog Post: Giving Performance Talk at Programmer Developers Conference (PDC) 10/26

    This is a quick plug for a pre-conference session I am giving on 10/26 at Microsoft’s Programmer Developers Conference (PDC) 10/26 held this year in Los Angeles. My talks are part of a all day session that I am giving along with Rico Mariani and Mark Friedman entitled Performance by design using...
  • Blog Post: To Inline or not to Inline: That is the question

    In a previous posting , I mentioned that .NET V3.5 Service Pack 1 had significant improvements in the Just in time (JIT) compiler for the X86 platform, and in particular its ability to inline methods was improved (especially for methods with value type arguments). Well now that this release is publically...
  • Blog Post: What's Coming in .NET Runtime Performance in Version V3.5 SP1

    What's Coming in .NET Runtime Performance in Version V3.5 SP1 It certainly has been a while since I last blogged. Most of this is laziness on my part, but I can truthfully say that it is partly because I have been busy trying to get the next servicing release of the .NET framework (called Version...
  • Blog Post: Assumptions used in the cold startup formula (when is it accurate).

    After my last blog entry on cold startup a reader ( dimkaz ) worried that the formula would not be accurate in many cases. This topic is worth discussing in some detail because it pretty common to apply formulas outside the assumptions implicit in them, and simply get wrong conclusions. The most fundamental...
  • Blog Post: A Model for cold startup time of an application on Windows.

    Well it is has been a while. I see now that it is been getting close to 1/2 a year since I last posted. Sigh. It is so easy for other things to get busy and not to blog. I have resolved to try to be a bit more methodical about and insure that I write something every week or so. Over the past year...
  • Blog Post: Drilling into .NET Runtime microbenchmarks: 'typeof' optimizations.

    In my last blog entry showed how to use a simple simle class called MultiSampleCodeTimer to measure the performance (time), of pretty much any fragment of CLR code quickly and easily. That entry had a solution packaged up as a zip file TypePerfMeasurement.zip that you could use to duplicate the experiment...
  • Blog Post: Measuring managed code quickly and easiliy: CodeTimers

    My performance blog entries to date have been 'foundational'. In entries so far, I talk about how to use Visual Studio to look at the native code generated for the runtime. With this foundation, we can now start exploring what the native code for managed code looks like and what optimzations the runtime...
  • Blog Post: Low-Lock Techniques in action: Implementing a Reader-Writer lock

    In my article What Every Dev Must Know About Multithreaded Apps I discuss the fundamental principles of using locks correctly. In that article I strongly encourage the use of reader-writer locks because these locks create the protection you need (insuring that readers and writers don't conflict), while...
Page 1 of 2 (27 items) 12