0

我在嵌入式平台(如 Rasp Pi)上使用 JavaSE Embedded 8 compact 2 配置文件。我选择紧凑型 2 配置文件以使占用空间尽可能小。

出于开发目的,我想进行分析,而不是在运行时更改配置文件(作为闪存中操作系统的一部分)。JavaSE Embedded 8 确实包含用于分析目的的飞行记录器,这是一个非常酷且有用的工具。但是:它需要 FullJRE 配置文件。

Oracle 的页面http://www.oracle.com/technetwork/java/embedded/resources/tech/java-flight-rec-on-java-se-emb-8-2158734.html指出:

Note that JFR is available with Java SE Embedded 8 Full JRE, not with the Compact Profiles.  

是否有技术机会在紧凑型 2 配置文件上工作?例如,通过创建包含飞行记录器插件的定制版 JVM?或者是否需要仅在 FullJRE VM 中的本机组件?

更新:与此同时,我发现了 Jim Connor 的一篇帖子,其中包含关于精简配置文件的声明。请参阅https://blogs.oracle.com/jtc/entry/using_java_fligt_recorder_with。Jim 详细描述了如何在 compact 3 配置文件上运行飞行记录器。由于飞行记录器依赖于 javax.management,他认为在紧凑的 1/2 配置文件上运行无法进行实质性更改。

4

1 回答 1

0

Compact profile 2 不包含 JMX 功能,并且大部分实现(例如 JFR 诊断命令)构建在 JDK 7/8 中的 MBean 之上。因此无法在紧凑型 1/2 上使用 Flight Recorder。

JDK 9 现已发布,您需要的唯一模块是 jdk.jfr。

您可以使用 jlink 工具构建自定义 JDK:

cd JDK9_HOME/bin/

jlink --module-path ../jmods --add-modules jdk.jfr --output ../../jfrjdk

cd ../../jfrjdk/bin
java -XX:+UnlockCommercialFeatures -XX:StartFlightRecording -version

如果您想远程访问 JFR,即从 Java Mission Control,请使用模块 jdk.management.jfr。请注意,这将拉入 JMX,因此图像会更大。

于 2016-01-12T04:47:55.170 回答