Un procesador que se emula a sí mismo, puede ser más rápido que él mismo.

El mundo moderno del software contiene tantas capas que las optimizaciones pueden estar en los lugares más inesperados. Conoce el año 2000, el proyecto HP Dynamo. Este es un emulador de procesador PA-8000, que se ejecuta en el mismo procesador PA-8000, pero con tecnología JIT. Y los programas reales que se ejecutan en el emulador terminan ejecutándose más rápido que en un procesador simple.





td; dr - el título lo dice todo





Los programadores de HP Labs se preguntaban qué pasaría si escribieran un compilador JIT de optimización para la misma plataforma en la que trabaja. El trabajo llevó varios años. Era posible ejecutar binarios nativos sin modificar bajo el emulador. Y los resultados fueron algo inesperados.





Buscaron "rutas calientes" en el emulador y optimizaron el flujo de ejecución del código. Por lo tanto, se redujeron los costos de saltos, funciones de llamada, bibliotecas dinámicas y optimización del trabajo con la memoria caché del procesador. Los resultados de mejora del rendimiento alcanzaron + 22%, el promedio de las pruebas resultó ser + 9%.





Esta breve nota fue escrita para que alguien pudiera aprender algo nuevo, pero no tiene sentido entrar en los detalles técnicos de hace 20 años.





Si alguien está interesado en los detalles:





1.http

: //cseweb.ucsd.edu/classes/sp00/cse231/dynamopldi.pdf 2.https : //stackoverflow.com/questions/5641356/why-is-it-that-bytecode-might-run-faster -than-native-code / 5641664 # 5641664 3.https

: //en.wikipedia.org/wiki/Just-in-time_compilation








All Articles