Los intérpretes hacen mucho trabajo extra, por lo que es comprensible que terminen significativamente más lento que el código de máquina nativo. Pero los lenguajes como C# o Java tienen compiladores JIT, que supuestamente se compilan con el código máquina nativo de la plataforma.¿Por qué los lenguajes JIT-ed son aún más lentos y menos eficientes en la memoria que C/C++ nativo?
Y, sin embargo, de acuerdo con benchmarks que parece lo suficientemente legítimo, en la mayoría de los casos son todavía 2-4 veces más lento que C/C++? Por supuesto, me refiero a un código C/C++ igualmente optimizado. Soy muy consciente de los beneficios de la optimización de la compilación de JIT y su capacidad para producir código que es más rápido que C + C++ poco optimizado.
Y después de todo ese ruido acerca de cuán buena es la asignación de memoria de Java, ¿por qué tal horrendous uso de memoria? De 2x a 50x, en promedio se usa alrededor de 30x veces más de memoria en ese conjunto de referencia particular, lo cual no es nada estornudar en ...
NOTA que no quiero iniciar una GUERRA, estoy preguntando por la detalles técnicos que definen esas cifras de rendimiento y eficiencia.
.let la guerra ... COMENZAR! –
[¿Por qué java tiene la reputación de ser lento?] (Http://stackoverflow.com/questions/2163411/why-did-java-have-the-reputation-of-being-slow) – assylias
Si bien ambos compiladores JIT y Los compiladores fuera de línea tienen que equilibrar el tiempo de compilación con la velocidad de ejecución, los compiladores fuera de línea pueden colocar la balanza más en la velocidad de ejecución. – harold