Un árbol de seguimiento es una estructura de datos que se utiliza en la compilación en tiempo de ejecución del código de programación . Los árboles de seguimiento se utilizan en el seguimiento de la compilación en tiempo real, donde el seguimiento se utiliza durante la ejecución del código para buscar puntos calientes antes de la compilación. Cuando se ingresan esos puntos calientes nuevamente, se ejecuta el código compilado en su lugar. Se realiza un seguimiento de cada instrucción ejecutada, incluso dentro de otras llamadas de función , y se compila toda la ruta de ejecución. Esto es diferente de compilar funciones individuales. Se puede obtener más información, lo que permite mejores optimizaciones del compilador , incluida la eliminación de cierta sobrecarga de llamadas de función. Se llama al intérprete para que continúe siempre que el código compilado realice llamadas al código fuera de los contextos de compilación.
Referencias
- Bala, Vasanth; Duesterwald, Evelyn; Banerjia, Sanjeev (junio de 1999), Optimización dinámica transparente: el diseño y la implementación de Dynamo , consultado el 18 de diciembre de 2020
- Gal, Andreas ; Franz, Michael (noviembre de 2006), Generación de código dinámico incremental con árboles de seguimiento (PDF) , CiteSeerX 10.1.1.113.557 , S2CID 9352256 , consultado el 18 de diciembre de 2020
- Gal, Andreas ; Bebenita, Michael; Chang, Mason; Franz, Michael (octubre de 2007), Cómo hacer explícita la "canalización" de compilación: compilación dinámica mediante serialización de árbol de seguimiento , CiteSeerX 10.1.1.85.2412 , S2CID 14848180
- Double, Chris (febrero de 2008), Introducción rápida al rastreo de tamarinos , consultado el 18 de diciembre de 2020
- Chang, Mason (12 de enero de 2009), La diferencia entre los bloques básicos extendidos y los rastros, archivado desde el original el 29 de enero de 2020
- Bolz, Carl Friedrich (2 de marzo de 2009), Blog de PyPy: Aplicación de un JIT de seguimiento a un intérprete , consultado el 18 de diciembre de 2020