Почему языки JIT -по-прежнему медленнее и менее эффективно используют память, чем родные C/C++?

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

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

И после всего этого шума о том, насколько хорошо распределена память в Java, почему такое ужасное использование памяти? От 2x до 50x, в среднем примерно в 30 раз больше памяти используется в этом конкретном наборе тестов, на что нечего чихать...

ОБРАТИТЕ ВНИМАНИЕ, что я не хочу начинать ВОЙНУ, я спрашиваю о технических деталях, которые определяют эти показатели производительности и эффективности.

6
задан igouy 26 May 2016 в 23:35
поделиться