Я знаю, что такое инструментарий байт-кода. Это просто изменение байт-кодов файлов .class во время выполнения, которое, по-видимому, доступно, начиная с JDK 1.5. Однако говорят, что это происходит во время загрузки класса, а не во время выполнения.
Теперь мой вопрос: что такое инструментарий AOT или Ahead of Time? Что такое обратная процедура? Инструментарий со временем?
Инструментирование вашего кода
Волокна Quasar основаны на инструментировании байт-кода. Это можно сделать во время загрузки класса с помощьюJava Agent
или во время компиляции с помощью задачи Ant.Запуск инструментария
Облегченная реализация потока Java AgentQuasar
основана на инструментировании байт-кода. Инструментирование может выполняться во время компиляции (подробнее см. ниже) или во время выполнения с использованием агента Java. Чтобы запустить агент Java, в командную строку java необходимо добавить следующее (или использовать ваш любимый инструмент сборки, чтобы добавить это в качестве аргумента JVM):
-javaagent:path-to-quasar-jar.jar
Инструментирование с опережением времени (AOT)
Простой и предпочтительный способ инструментирования программ с использованием Quasar — это агент Java, который инструментирует код во время выполнения. Однако иногда запуск агента Java невозможен.Quasar поддерживает инструментарий AOT с задачей Ant. Задача
co.paralleluniverse.fibers.instrument.InstrumentationTask
находится вquasar-core.jar
, и она принимает набор файлов классов для инструмента. На самом деле не все классы будут инструментированы — только те, у которых естьsuspendable method
s (см. ниже), — поэтому просто дайте задаче все файлы классов в вашей программе. На самом деле Quasar оснащен инструментами заблаговременно.
Ahead of Time instrumentation
— это механизм инструментирования, в котором инструментирование происходит до выполнения кода (и инструментированный код сохраняется, чтобы его можно было выполнить позже без повторного инструментирования), и противоположным было быJust in Time instrumentation
, где код обрабатывается каждый раз непосредственно перед выполнением кода. См. также Опережающая компиляция и Точно подборка - person Andreas Fester   schedule 12.05.2016