I thought the C/C++ vs C#/Java performance question was well trodden, meaning that I\'d read enough evidence to suggest that the VM languages are not necessarily any slower
The simple fact is that C++ is designed for speed. C#/Java aren't.
Take the innumerable inheritance hierarchies endemic to those languages (such as IEnumerable), compared to the zero-overhead of std::sort or std::for_each being generic. C++'s raw execution speed isn't necessarily any faster, but the programmer can design fast or zero-overhead systems. Even things like buffer overruns- you can't turn their detection off. In C++, you have control. Fundamentally, C++ is a fast language- you don't pay for what you don't use. In contrast, in C#, if you use, say, stackalloc, you can't NOT do buffer overrun checking. You can't allocate classes on the stack, or contiguously.
There's also the whole compile-time thing, where C++ apps can take much longer, both to compile, and to develop.