我知道字节码检测是什么。它只是在运行时更改 .class 文件字节码,这似乎从 JDK 1.5 开始可用。但是,据说是在类加载期间而不是运行时。
现在我的问题是,什么是 AOT 或 Ahead of Time 仪器?什么是相反的程序?随着时间的推移仪表?
检测您的代码
Quasar 光纤依赖于字节码检测。这可以在类加载时通过 a 完成Java Agent
,或者在编译时使用 Ant 任务完成。运行 Instrumentation
Java AgentQuasar
的轻量级线程实现依赖于字节码检测。检测可以在编译时(下面详述)或在运行时使用 Java 代理执行。要运行 Java 代理,必须将以下内容添加到 java 命令行(或使用您喜欢的构建工具将其添加为 JVM 参数):
-javaagent:path-to-quasar-jar.jar
提前 (AOT)
检测 使用 Quasar 检测程序的简单且更可取的方法是使用 Java 代理,它在运行时检测代码。然而,有时,运行 Java 代理不是一种选择。Quasar 通过 Ant 任务支持 AOT 检测。该任务位于
co.paralleluniverse.fibers.instrument.InstrumentationTask
中quasar-core.jar
,它接受要检测的类文件集。并不是所有的类都会被实际检测——只有那些带有suspendable method
s 的类(见下文)——所以只需将程序中的所有类文件都交给任务。事实上,Quasar 本身已经 提前进行了检测。