Почему JIT-языки все еще медленнее и менее эффективны, чем родной C / C ++?

Переводчики выполняют много дополнительной работы, поэтому понятно, что они оказываются значительно медленнее, чем собственный машинный код. Но языки, такие как C # или Java, имеют JIT-компиляторы, которые предположительно компилируются в машинный код платформы.

И все же, согласнотесты что кажется достаточно законным, в большинстве случаев все еще в 2-4 раза медленнее, чем C / C ++? Конечно, я имею в виду по сравнению с одинаково оптимизированным кодом C / C ++. Мне хорошо известны преимущества оптимизации JIT-компиляции и их способность создавать код, который работает быстрее, чем плохо оптимизированный C + C ++.

И после всего этого шума о том, как хорошо выделение памяти Java, почему такойустрашающий использование памяти? В 2–50 раз, в среднем, примерно в 30 раз больше памяти используется в этом конкретном наборе тестов, что не к чему чихать ...

Обратите внимание, что я не хочу начинать WAR, я спрашиваю о технических деталях, которые определяют эти показатели производительности и эффективности.

Ответы на вопрос(3)

Ваш ответ на вопрос