Some performance notes that i got from MSDN. JIT compiler performs the following optimization given the small amount of time: •Constant folding •Constant and copy propagation •Common subexpression elimination •Code motion of loop invariants •Dead store and dead code elimination •Register allocation •Method inlining •Loop unrolling (small loops with small bodies) Value types, including integral types, floating point types, enums, and structs, typically live on the STACK. Reference types and boxed value types live in the HEAP. They are addressed by object references, which are simply machine pointers just like object pointers in C/C++. NGEN, a tool which "ahead-of-time" compiles the CIL into native code assemblies 9 million allocation Type Size of Allocation Execution Time string 575,783 00:00:2739811 int 8620 bytes - 40 instances 00:00:2515444 short 10472 bytes - 238 instances 00:00:2538425 employee 1,440,457,523 ...