Un processeur qui s'émule - peut être plus rapide que lui

Le monde moderne du logiciel contient tellement de couches que les optimisations peuvent se trouver dans les endroits les plus inattendus. Rencontrez l'an 2000, le projet HP Dynamo. Il s'agit d'un émulateur de processeur PA-8000, fonctionnant sur le même processeur PA-8000, mais avec la technologie JIT. Et les vrais programmes exécutés dans l'émulateur finissent par s'exécuter plus rapidement que sur un processeur nu.





td; dr - le titre dit tout





Les programmeurs de HP Labs se sont demandé ce qui se passerait s'ils écrivaient un compilateur JIT d'optimisation pour la même plate-forme sur laquelle il fonctionne. Les travaux ont duré plusieurs années. Il était possible d'exécuter des binaires natifs non modifiés sous l'émulateur. Et les résultats étaient quelque peu inattendus.





Ils ont recherché des "hot paths" dans l'émulateur et optimisé le flux d'exécution du code. Ainsi, les coûts de sauts, d'appel de fonctions, de bibliothèques dynamiques et d'optimisation du travail avec le cache du processeur ont été réduits. Les résultats d'amélioration des performances ont atteint + 22%, la moyenne des tests s'est avérée être de + 9%.





Cette courte note a été écrite pour que quelqu'un puisse apprendre quelque chose de nouveau, mais il ne sert à rien d'entrer dans les détails très techniques d'il y a 20 ans.





Si quelqu'un est intéressé par les détails :





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