Post by this author
I received some feedback from my recent BCL blog post on the prerelease of the immutable collections that my algorithm complexity table left a few important entries out. Here is the table again, with more data filled in (particularly around list indexer lookup and enumeration): A noteworthy trait to call out here is that where a List<
Context switches are not free. But how expensive are they? I wrote a small program to find out, and I’m sharing the program and its results here. I focused on purely context switches (no work is actually performed between context switches). So it’s not a real-world scenario, but it really brings out the hidden costs. Below are the results
In previous posts, I discussed immutable collections. I’m pleased to say they are now available. Read my announcement on the BCL blog.
A few days ago I posted about an updated Visual C++ 2012 debugger extensibility project template. Since then, I realized it had a couple of issues that prevented it from working out of the box. With those fixed, I also added a demonstration of how to read project properties that aren’t specifically dedicated to debugger suppo
Back in Visual C++ 2010 we introduced debugger extensibility so that third party vendors can either add new debugger engines or new ways of launching existing debugger engines for C++ projects. In Visual C++ 2012 this debugger extensibility has been updated. Any previous extensions that were compiled against Visual C++ 2010 will
In my last post, I detailed the differences among read/write, read only, frozen and immutable collection types. I described how immutable collections come with a hit to the garbage collector due to the garbage they generate during mutations. I have a very positive update on that topic. My previous implementation for the immutabl
[Update: a more recent post with new data on attainable performance of immutable collections] The topics of immutability and functional programming has fascinated me lately. Mostly because of my work on the Visual Studio Common Project System (CPS) which is a large, highly multi-threaded code base that only remains sane because of its
Visual C++ 2010 includes a debugger extensibility point that makes it easy for people who have written their own debuggers, or wish to modify the way existing debuggers are launched, to do so.Check out the Visual C++ Debugger Launch Extension project template on the Visual Studio Gallery to get started.
User Account Control, the feature in Vista that causes installers and some applications to require "elevation" to administrator privileges to run, cuts both ways. It's designed to protect users from apps that try to make system-level changes by giving the user the heads up that it's about to happen and gives the user the chance