Отслеживание своевременной компиляции

Оглавление1 Отслеживание своевременной компиляции1.1 Компиляция “точно в срок”1.2 Классификация JIT-компиляторов1.3 Технические детали1.4 История и примеры1.5 Пример трассировки2 Отслеживание своевременной компиляции […]

Отслеживание своевременной компиляции

  • Компиляция “точно в срок”

    • Метод оптимизации выполнения программ, записывая часто выполняемые операции в машинный код. 
    • Отличается от традиционных JIT-компиляторов, которые компилируют каждый метод. 
  • Классификация JIT-компиляторов

    • JIT-компиляторы на основе методов преобразуют каждый метод в машинный код. 
    • JIT-компиляторы трассировки используют циклы в качестве единицы компиляции. 
  • Технические детали

    • Профилирование циклов для выявления “горячих контуров”. 
    • Фаза отслеживания записывает операции в трассировку, оптимизирует и компилирует её в машинный код. 
    • Защита в трассировке предотвращает выполнение кода, если условия не выполняются. 
  • История и примеры

    • Идея JITs восходит к 1960-м, но JIT-трассировка стала популярной недавно. 
    • DynamoRIO – первая реализация трассировки, которая генерирует оптимизированный код для часто выполняемых последовательностей команд. 
    • HotpathVM – первый трассирующий JIT-компилятор для языков высокого уровня, оптимизирующий байт-код. 
    • TraceMonkey – реализация Mozilla для JavaScript, компилирующая часто выполняемые циклы. 
    • PyPy использует трассировку JIT для повышения производительности интерпретатора. 
    • Microsoft SPUR – универсальный трассировщик для Common Intermediate Language. 
  • Пример трассировки

    • Трассировка для программы на Python, вычисляющей сумму квадратов до 100 000. 

Полный текст статьи:

Отслеживание своевременной компиляции — Википедия

Оставьте комментарий