Powered By Blogger

viernes, 20 de enero de 2012

Por qué C es más rápido que Java (Shawn O. Pearce, 2009)

En Hacker News se está dando un debate interesante alrededor de un email de Shawn O. Pearce de abril de 2009 (también discutido allí hace 2 años), experto en Java de alto rendimiento, sobre los problemas que tienen en Google para hacer que JGit, reimplementación en el lenguaje Java del software gestor de versiones Git, se aproxime a la velocidad de la implementación de referencia, escrita en C (en el email habla de que la versión en C es 2 veces más rápida que la de Java con ejecución JIT). Hace referencia, entre otras cosas, al espacio extra necesario en las estructuras de datos, el coste de las copias, el problema de Java al no tener un tipo específico para enteros sin signo, la ineficiencia de de la implementación de hashes, etc. También comenta cómo afecta al rendimiento los cambios que se van dando en el motor de ejecución JIT de Java. ¿Alguien en la sala sabe si versiones más recientes de Java han conseguido paliar parte de tales problemas? ¿Alguna idea para mejorar el rendimiento de Java en tales casos? (disculpa mediante por la autocita, en el 2009 escribí una entrada de bitácora sobre optimización de estructuras de datos en Java)

No hay comentarios: