Welcome to the CLR Code Generation Team's blog
This is the first blog post from the code generation feature team working on the Common Language Runtime (CLR). We're the group of individuals that make it possible to generate native code for all...
View ArticleTo NGen or Not to NGen?
One of the topics we often get questions on is about when it makes sense to invest the extra effort to pre-compile assemblies via NGen instead of simply relying on the JIT compiler to generate native...
View ArticleRunning NGen as part of installing a Microsoft Exchange patch roll up takes...
I work in the CodeGen test team and wanted to share a recent customer experience that was related to ngen. One of our Customer Service and Support (CSS) engineers in France contacted us regarding an...
View ArticleHow to see the Assembly code generated by the JIT using Visual Studio
by Brian Sullivan In Visual Studio you can set a breakpoint at any line in your source code. When you run your program Visual Studio will break and stop execution when it reaches your breakpoint....
View ArticleHow are value types implemented in the 32-bit CLR? What has been done to...
By Fei ChenHow are value types implemented in the 32-bit CLR?Value types are the closest thing in the common language runtime model to C++ structures. An instance of a value type is simply a blob of...
View ArticlePerformance implications of unmanaged array accesses
I was recently shown the following code and asked why the loop calling SafeAccess executed significantly faster than the second loop calling UnsafeAccess: static int [] intarray = new int...
View ArticleWhat's in NetFX 3.5 SP1?
Long time, no blog. Since the NetFX 3.5 Service Pack is available, now, I figured I’d put up a quick rundown of what we (the CLR CodeGen team) contributed to the package. I’m not going into...
View ArticleImprovements to NGen in .NET Framework 4
.NET Framework 4 is our first release since we shipped FX 3.5 SP1 (FX 4 beta 1 is now available here: http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx). FX 3.5 SP1 contained major changes to NGen...
View ArticleJIT ETW tracing in .NET Framework 4
If you care about performance at a very low level, at one point you’ve asked yourself why the compiler, JIT, or runtime did or did not inline a certain method. Unless you worked on the compiler, JIT,...
View ArticleTail Call Improvements in .NET Framework 4
First a little background reading before going into tail call improvements in CLR 4 - David Broman did an excellent job at covering the basics in his post here:...
View ArticleArray Bounds Check Elimination in the CLR
IntroductionOne argument often made by those who dislike managed code is along the lines of “managed code can never be as fast as native code, because managed code has to do array bounds checks.” Of...
View ArticleJIT ETW Inlining Event Fail Reasons
This is a follow-up post for JIT ETW tracing in .NET Framework 4. These are some of the possible strings that might show up in FailReason field of the MethodJitInliningFailed event. These are...
View ArticleNGen: Walk-through Series
Now that Microsoft Visual Studio 2010 has shipped, we thought it would be a good time to publish a series of articles focused on how to use the NGen technology and how to measure performance benefits...
View ArticleNGen: Getting Started with NGen in Visual Studio
This is article 1 of 4 in the NGen: Walkthrough Series.Hey there managed code developer. So you’d like to test drive the NGen technology in the .Net Framework? This article will walk you through how to...
View ArticleNGen: Measuring Warm Startup Performance with Xperf
This is article 2 of 4 in the NGen: Walkthrough Series. This article is part of a series of blog posts intended to help managed code developers analyze if Native Image Generation (NGen) technology...
View ArticleNGen: Measuring Working Set with VMMap
This is article 3 of 4 in the NGen: Walk-through Series.This article is part of a series of blog posts intended to help managed code developers analyze if Native Image Generation (NGen) technology...
View ArticleNGen: Creating Setup Projects
This is article 4 of 4 in the NGen: Walk-through Series.The NGen technology is designed to be used during the installation phase of a managed application or library. This article will talk about the...
View ArticleJIT ETW Tail Call Event Fail Reasons
This is a follow-up post for JIT ETW tracing in .NET Framework 4. These are some of the possible strings that might show up in the FailReason field of the MethodJitTailCallFailed event. These are...
View ArticleTesting, Testing: Hey, is this thing on?
Hey folks! For the persevering Codegen aficionados (I was going to say junkies, but aficionado seems much more accurate to me) out there, you may have noticed that there hasn't been anything posted...
View ArticleRyuJIT CTP1 is available for public consumption!
http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx'nuff said (for now).-Kev
View Article