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…

6

Writing approachable code: Introducing the hyperaddin for Visual Studio!

A few years ago now, several of us on the .NET Runtime team where lamenting how unapproachable the code base was for new developers to the team.    We agreed that more commenting would certainly help the situation, but that alone was not enough, because you also need to FIND the comments WHEN they are relevent…

15

The windows prefetcher

In my last blog I talked about some of the conditions than need to hold for the cold startup formula ColdStartupTimeMSec = WarmStartupTimeMsec + 4 * NumberOfReads + 20 * NumberMBytes To be accurate.  I mentioned that if you have overlap between the CPU and the disk then it may not be accurate (although it would…

5

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 part of the formula is   Cold…

1

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…

4

Intro to Programming Excercise: Bouncing Balls

This article is the beginning of a new ‘Introduction to Programming’ topic for my blog.  The BouncingBalls example. Basically, I have decided to try to teach programming to a set of teenagers from my son’s junior high school, and this topic will be a set of instruction materials for that ‘course’.  The basic premise is…

4

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 yourself.   However I did…

4

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 does on…

14

Digging deeper into managed code with Visual Studio: Using SOS

I have let my blog laps for too long.    I am back to blogging.   I realized reciently that we have simply not written down many interesting facts about how the runtime actually works.  I want to fix this.   Coming up in future blogs I am going to be doing a bit of a ‘architectural overview’ which…

11

Analysis of Reader-Writer lock

In my last post I posted readerWriterDemo.cs which is an implementation of a Reader-Writer lock.   I held it up as an example of good design of a concurrent data structure.   I want to now show you a bit of what my thinking was when it was designed and what the important properties it has.   Before you…

14