O mundo moderno do software contém tantas camadas que as otimizações podem estar nos lugares mais inesperados. Conheça o ano 2000, o projeto HP Dynamo. Este é um emulador de processador PA-8000, rodando no mesmo processador PA-8000, mas com tecnologia JIT. E programas reais rodando no emulador acabam rodando mais rápido do que em um processador vazio.
td; dr - o título diz tudo
Os programadores do HP Labs se perguntaram o que aconteceria se eles escrevessem um compilador JIT de otimização para a mesma plataforma em que funciona. O trabalho demorou vários anos. Era possível executar binários nativos não modificados no emulador. E os resultados foram um tanto inesperados.
Eles procuraram por "caminhos ativos" no emulador e otimizaram o fluxo de execução do código. Assim, os custos de saltos, funções de chamada, bibliotecas dinâmicas e trabalho de otimização com o cache do processador foram reduzidos. Os resultados de melhoria de desempenho atingiram + 22%, a média dos testes acabou sendo + 9%.
Esta pequena nota foi escrita para que alguém pudesse aprender algo novo, mas não adianta entrar nos detalhes muito técnicos de 20 anos atrás.
Se alguém estiver interessado nos detalhes:
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