There was a whole session dedicated to that at TechEd 2004. You can probably find some references to that online...
Markus
>>Hi, Walter.
>>
>>>Not knowing the very details of it, AFAIK, the CLR is a type of interpreter (just like VFP use the pcode interpreter). I understand that there is a difference in the aspects that when it is translating into a lower level code, but still it is a engine that translates the high level instructions into highly efficient low level library of functions.
>>
>>No, it is not. As Markus said, .NET actually compiles the IL code before running it, making all sort of optimizations for the target system. So you are achieving most of a regular C++ compiler optimizations can do, BUT on a per-run basis. Just for some circumstances in which you even need to get rid of the compilation time (and believe me it is blazingly fast), and providing your system will keep quite stable over time, you can compile permanently (well, until you want to do it again) to native code.
>>
>>As several other pointed out, lots of benchmarking has been done, and .NET beats native unmanaged code in almost every test. Of course, there are some things -very few- in which unmanaged still performs better.
>>
>
>Do you have some references that illustrate this ? I ask that because while .NET benefits from a good JIT compilation, .NET seems to have less raw power than a good C++ compiler. For example, .NET performs a bound checking on arrays while C++ doesn't. It's just an example, that's why I would like to see more real world benchmark and not just hype.