title: C++ performance vs. Java/C#
body: <p>My understanding is that C/C++ produces native code to run on a particular machine architecture.  Conversely, languages like Java and C# run on top of a virtual machine which abstracts away the native architecture.  Logically it would seem impossible for Java or C# to match the speed of C++ because of this intermediate step, however I've been told that the latest compilers ("hot spot") can attain this speed or even exceed it.</p>
  
  <p>Perhaps this is more of a compiler question than a language question, but can anyone explain in plain English how it is possible for one of these virtual machine languages to perform better than a native language?</p>