Дерево трассировки - Trace tree
А дерево трассировки это структура данных который используется при компиляции во время выполнения программный код. Деревья трассировки используются в виде «своевременного компилятора», который отслеживает выполнение кода во время горячих точек и компилирует его. Когда эти горячие точки вводятся снова, вместо них запускается скомпилированный код. Он отслеживает каждый выполненный оператор, в том числе в других вызовы функций, и весь этот путь выполнения компилируется. Это отличается от компиляции отдельных функций. Компилятор может получить больше информации для оптимизатор для работы и удаления некоторых накладных расходов на вызовы. Каждый раз, когда скомпилированный код вызывает код, который не был изменен, интерпретатор вызывается для продолжения.
Рекомендации
- Бала, Васант; Дюстервальд, Эвелин; Банерджиа, Санджив (июнь 1999 г.), Прозрачная динамическая оптимизация: разработка и реализация Dynamo
- Галь, Андреас; Франц, Майкл (ноябрь 2006 г.), Инкрементальная генерация динамического кода с деревьями трассировки (PDF)
- Галь, Андреас; Бебенита, Майкл; Чанг, Мейсон; Франц, Майкл (октябрь 2007 г.), Создание явной «конвейерной» компиляции: динамическая компиляция с использованием сериализации дерева трассировки (PDF)
- Двойник, Крис (февраль 2008 г.), Краткое введение в отслеживание тамарина
- Чанг, Мейсон (12 января 2009 г.), Разница между расширенными базовыми блоками и трассировками
- Больц, Карл Фридрих (2 марта 2009 г.), Блог PyPy: применение JIT трассировки к интерпретатору