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

Отслеживание своевременной компиляции Компиляция «точно в срок» Метод оптимизации выполнения программ, записывая часто выполняемые операции в машинный код.  Отличается от […]

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

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

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

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

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

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

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

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

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

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

Прокрутить вверх