Байт-код был скомпилирован так же, как был скомпилирован код C ++.
Также JIT-компилятор, т.е. .NET и среды выполнения Java, массивны и динамичны;И вы не можете предвидеть в программе, какие части приложения используют, поэтому вам нужна вся среда выполнения.
Также необходимо понимать, что язык, ориентированный на виртуальную машину, имеет цели проектирования, совершенно отличные от языка, ориентированного на голое железо.
Возьмите C ++ против Java.
- C ++ не будет работать на виртуальной машине, в частности, большая часть дизайна языка C ++ ориентирована на RAII.
- Java не будет работать на голом металле по многим причинам,примитивные типы для одного.
РЕДАКТИРОВАТЬ: Как Delnan указывает правильно;JIT и аналогичные технологии, хотя и весьма благоприятные для производительности байт-кода, скорее всего, будут недоступны во время установки.Кроме того, компиляция для ВМ сильно отличается от компиляции в нативный код.