Por mi experiencia, el rendimiento del Java JIT, no es muy diferente del Java nativo compilado con gcj [gnu.org] para x86 ó x86-64. Lo que suele penalizar más es el patinar fuera de la cache de datos, por ocupar más estos (e.g. en las CPUs modernas, con memorias síncronas y buses de memoria a frecuencias de 400MHz a 2GHz, un fallo de cache puede suponer tener parado el pipeline de una CPU 100 ciclos de reloj, o incluso más). Seguro que hay otras cosas a nivel de cálculo que penaliza, pero no soy un experto en Java (he hecho algún port que otro de C/C++ a Java de algoritmos con estructuras de datos arborescentes).
Eso era así hace años. Hoy en día, con la compilación JIT, los lenguajes interpretados tienen el potencial de ser más rápidos aún que los compilados, ya que al compilarse en tiempo de ejecución pueden aprovechar las características concretas de la CPU en la que están, mientras que un programa compilado debe compilarse pensando en el mínimo común denominador. Por poner un ejemplo, los paquetes de las distribuciones linux de 32 bits se suelen compilar para i686, que viene a ser un Pentium II. En cambio, un programa Java se ejecuta en una máquina virtual que conoce las características de la CPU, y la puede aprovechar al máximo.
De todas formas, y aunque exista ese potencial, hay muchos más factores que influyen en si se alcanza el rendimiento teórico o no. Y de ahí el interés de este tipo de artículos que precisamente ponen todos los factores sobre la mesa y hacen un análisis. Pero lo de que "los lenguajes interpretados son más lentos que los compilados" es algo muy gratuito, hoy en día la cuestión se ha vuelto mucho más compleja.
¿Realmente necesario?
(Puntos:0)Re:¿Realmente necesario?
(Puntos:3, Interesante)( http://www.voluntariado.net/ | Última bitácora: Domingo, 10 Junio de 2012, 21:48h )
Re:¿Realmente necesario?
(Puntos:3, Interesante)De todas formas, y aunque exista ese potencial, hay muchos más factores que influyen en si se alcanza el rendimiento teórico o no. Y de ahí el interés de este tipo de artículos que precisamente ponen todos los factores sobre la mesa y hacen un análisis. Pero lo de que "los lenguajes interpretados son más lentos que los compilados" es algo muy gratuito, hoy en día la cuestión se ha vuelto mucho más compleja.
Saludos