Skip Headers
上一页
上一页
 
下一页
下一页

启用 Java 飞行记录器

默认情况下,在 JVM 中禁用了 JFR。要启用 JFR,必须使用 -XX:+FlightRecorder 选项启动 Java 应用程序。由于 JFR 是一种商业功能,仅在基于 Java 平台标准版 (Oracle Java SE AdvancedOracle Java SE Suite) 的商业包中提供,因此您还需要使用 -XX:+UnlockCommercialFeatures 选项来启用商业功能。

例如,要在启动名为 MyApp 的 Java 应用程序时启用 JFR,请使用以下命令:

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder MyApp

或者,(如果使用 JDK 8u40 或更高版本) 可以在运行时从 JMC 本身启用 JFR。启动新飞行记录时,将显示一个对话框,其中说明:

Commercial Features are not enabled in the JVM. To start a Flight Recording, you need to enable Commercial Features. Do you want to do that now?

单击“是”可启用这些功能。

请注意,在 JVM 上运行依赖于 lambda 表单的其他语言时 (例如 JavaScript 实施 Nashorn),堆栈跟踪的深度会非常深。要确保对大堆栈的堆栈跟踪正确采样,您可能需要增加飞行记录器的堆栈深度。通常将此值设置为 1024 便已足够:

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=stackdepth=1024 MyApp