JIT Optimizations, Inlining, and Interface Method Dispatching (Part 1 of N)

February 27, 2007

The .NET Just-In-Time Compiler (JIT) is considered by many to be one of the primary performance advantages of the CLR in comparison to the JVM and other managed environments that use just-in-time-compiled byte-code.  It is this advantage that makes the JIT internals so secret and the JIT optimizations so mysterious.  It is also the reason why the SSCLI (Rotor) contains only a naive fast-JIT implementation, which performs only the minimal optimizations while translating each IL instruction to its corresponding machine language instruction sequence.   During my research for the .NET Performance course I wrote for Sela, I've found a couple of...

Log Remoteability Through log4net

February 10, 2007

For those of you not aware of it, the log4net logging framework provides an open source complete solution to all kinds of logging facilities an application might require.  The framework contains implementation that allows you to log to rolling files, databases (via ADO), e-mail, "net send" and many more.  In addition, the framework is very extensible in the sense that customization is possible almost everywhere (especially given that it's open source). It's also necessary to mention that during the last couple of years, Microsoft has been working on and releasing the Logging Application Block, which is part of the Patterns...

Run FxCop from Code

As a very general introduction, FxCop is a code analysis tool developed by Microsoft that generates errors and warnings that should be part of the build process.  For example, existing FxCop rules can warn you about poorly performing constructs, about code that does not abide to naming conventions, about code that is not properly globalized or secure, and many more.  It is also possible to develop custom rules using the FxCop SDK, or download existing rules written by other developers.  Here's a couple of links that have a collection of rules (I bet there are more being added by...

Fun with the .NET GC, Paging, Generations and Write Barriers

February 9, 2007

There are plenty of resources on the .NET garbage collector, ranging from fairly basic overviews that explain what a Garbage Collector is, to detailed articles delving deep into the GC implementation, the server/workstation GC, the implementation of concurrent collections, the generational model and so forth.  You can find most of them fairly easily - here's a very brief list of references: If the basic concepts don't sound familiar to you, you might want to refer to Jeffrey Richter's excellent article for a good primer (note that there are two parts). Another fantastic GC resource is Maoni Stephens' blog, one of...

First Post (Introduction)

Hi everyone.  My name is Sasha Goldshtein, and I work for the Sela Group as an instructor and consultant.  My primary interests are in the .NET area, although my history as a developer includes gory things like C and digging into Win32, COM and ATL, MFC, STL and stuff of that ilk.  :-)  In the lecturing part of my work, I have recently been focusing on .NET performance and internals (and this is what my (real) first post will be about...). I really hope to keep this blog updated with interesting things that I come across.  If there will be...
no comments