Трассировка дерева
Дерево трассировки — это структура данных , которая используется при компиляции программного кода во время выполнения . Деревья трассировки используются при трассировке JIT-компиляции , где трассировка используется во время выполнения кода для поиска горячих точек перед компиляцией. Когда эти горячие точки вводятся снова, вместо этого запускается скомпилированный код. Каждый выполняемый оператор отслеживается, в том числе внутри вызовов других функций , и компилируется весь путь выполнения. Это отличается от компиляции отдельных функций. Можно получить больше информации, что позволит лучше оптимизировать компилятор , включая удаление некоторых накладных расходов на вызовы функций. Интерпретатор вызывается для продолжения всякий раз, когда скомпилированный код вызывает код вне контекста компиляции.
Ссылки
[ редактировать ]- Бала, Васант; Дюстервальд, Эвелин; Банерджиа, Санджив (июнь 1999 г.), Прозрачная динамическая оптимизация: проектирование и реализация Dynamo , получено 18 декабря 2020 г.
- Галь, Андреас ; Франц, Майкл (ноябрь 2006 г.), Инкрементная динамическая генерация кода с деревьями трассировки (PDF) , CiteSeerX 10.1.1.113.557 , S2CID 9352256 , дата обращения 18 декабря 2020 г.
- Галь, Андреас ; Бебенита, Майкл; Чанг, Мейсон; Франц, Майкл (октябрь 2007 г.), Создание явного «конвейера» компиляции: динамическая компиляция с использованием сериализации дерева трассировки , CiteSeerX 10.1.1.85.2412 , S2CID 14848180
- Дабл, Крис (февраль 2008 г.), Краткое введение в отслеживание тамаринов , получено 18 декабря 2020 г.
- Чанг, Мейсон (12 января 2009 г.), Разница между расширенными базовыми блоками и трассировками , заархивировано из оригинала 29 января 2020 г.
- Больц, Карл Фридрих (2 марта 2009 г.), Блог PyPy: применение трассировки JIT к интерпретатору , получено 18 декабря 2020 г.