gui jfr_Java飞行记录器(JFR)

gui jfr

JFR是一个Java分析器,它使您可以研究代码的运行时特征。 通常,您将使用探查器来确定代码的哪些部分导致大量内存分配或导致消耗过多的CPU。

有很多产品在那里。 过去,我使用过YourKit,OptimizeIt,JProfiler,NetBeans等。 每个都有其优点,并且在很大程度上取决于您所选择的个人偏好。 我当前个人最喜欢的是YourKit。 它可以很好地集成到IntelliJ中,具有相对较低的开销,并且可以很好地呈现其报告。

事实是,概要分析是一门非常不精确的科学,通常不只需要研究一个探查器来更清晰地了解程序中到底发生了什么。 据我所知,大多数探查器都依赖JVMP / JVMTI代理来探查Java程序。 一个主要的问题是安全点 。 这意味着您的Java程序只有在安全点才能被探测。 这意味着您将错误地了解程序中实际发生的情况,尤其是当许多活动处于安全点之间时。 同样,所有探查器都会在不同程度上增加开销。 Profiler的开销将改变程序的特性,并可能导致分析结果产生误导。 这里有更多信息。

输入JFR。 自7u40版以来,JRF已与JDK捆绑在一起。 通过直接访问JVM构建JFR。 这不仅意味着开销很低(几乎在所有情况下都声称少于1%),而且也不依赖安全点。 在这里查看一个示例,该示例与YourKit和JFR的分析有多么根本的不同。

要运行JFR,您需要将以下开关添加到Java命令行中:

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder

JFR位于Java Mission Control(JMC)中。 要启动JMC,只需在命令行中键入jmc ,如果您的路径中包含JDK,则JMC控制台将启动。 您应该在左侧窗格中看到Java程序。 右键单击您的程序,然后开始飞行记录。

屏幕截图2015年1月16日于08.21.43

您将看到一个对话框,您可以在其中接受默认值(一分钟采样),然后将显示结果。 值得付出选择,以找到最适合您的方式。 与所有好的产品一样,该GUI非常直观。

从命令行开关可以看出,这是商业功能。 我不确定这意味着什么,但是您可以在这里的文档中了解更多信息。 您也可以从命令行运行它,所有这些都在文档中。

我确实发现的一个问题是,当我下载最新的Java8快照(此时为1.8.0_40-ea)时,我无法启动程序并收到以下消息:

/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/
Error: Trying to use 'UnlockCommercialFeatures', but commercial features are not available in this VM.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

总而言之,JFR是对任何开发人员工具箱的重要补充,只要您使用的是JDK版本7u40或更高版本,那么肯定值得在您的代码中进行尝试。

(我鼓励您查看上一篇文章结合JFR 进行性能优化的第一条规则

翻译自: https://www.javacodegeeks.com/2015/01/java-flight-recorder-jfr.html

gui jfr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值