![]() 上一页 |
![]() 下一页 |
默认情况下,在 JVM 中禁用了 JFR。要启用 JFR,必须使用 -XX:+FlightRecorder
选项启动 Java 应用程序。由于 JFR 是一种商业功能,仅在基于 Java 平台标准版 (Oracle Java SE Advanced 和 Oracle 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