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程序。 右键单击您的程序,然后开始飞行记录。

您将看到一个对话框,您可以在其中接受默认值(一分钟的示例),然后将显示结果。 值得付出选择,以找到最适合自己的方式。 与所有好的产品一样,该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

Java飞行记录器(JFR)相关推荐

  1. java飞行记录器是什么_运行java飞行记录器JFR(java flight recorder)

    JFR 上面讲到的工具都是作为快速的查看诊断工具的.如果要深入分析问题,可以选择使用内置的Java飞行记录器:Java Mission Control. 转储JFR需要三步: 1. 创建一个包含了你自 ...

  2. java飞行_运行java飞行记录器JFR(java flight recorder)

    JFR 上面讲到的工具都是作为快速的查看诊断工具的.如果要深入分析问题,可以选择使用内置的Java飞行记录器:Java Mission Control. 转储JFR需要三步: 1. 创建一个包含了你自 ...

  3. java 飞行记录器_Java 11功能– Java飞行记录器

    java 飞行记录器 在本文中,我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分.之前,它是商业功能之一. 但是,对于带有JEP 328的 Java 11,它是 ...

  4. Java 11 – Java飞行记录器

    Java Flight Recorder(JFR)是一个Java分析工具,用于监视和诊断正在运行的Java应用程序,它收集有关正在运行的环境,JVM和Java应用程序的数据,并将记录的数据转储到.jf ...

  5. Java飞行记录 (JFR)

    一.JFR 飞行记录器 Java Flight Recorder(JFR)是一个商业特性,用在生产服务器上是需要商业许可的. JFR 记录了关于 Java 运行时及运行在其内的 Java 应用程序的详 ...

  6. Java飞行记录器 JRockit Flight Recorder JFR诊断JVM的历史性能和操作

    需要展开子树,复制堆栈跟踪,就可以查看到代码调用链,看到自己的业务代码,从而定位到最耗时的代码位置:

  7. Java 11功能– Java飞行记录器

    在本文中,我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分.之前,它是商业功能之一. 但是,对于带有JEP 328的 Java 11,它是开源的. Java F ...

  8. java飞行_Java飞行记录器

    参考地址1 参考地址2 最近做性能测试, 无法定位到问题, 故使用内置的Java飞行记录器:Java Mission Control. 一. 开启流程如下: 在Linux服务器上: 1. 要检查的服务 ...

  9. java飞行器服务端_使用jvisualvm和飞行记录器分析Java程序cpu占用率过高

    一.jvisualvm使用 JDK1.6中Oracle提供了一个新的JVM监控工具:jvisualvm.下面重点介绍如何在本地通过远程的方式打开Linux服务器上的jvisualvm. 1.Xmana ...

最新文章

  1. Centos Git1.7.1升级到Git2.2.1
  2. 文本分类入门(番外篇)特征选择与特征权重计算的区别
  3. 华为免费虚拟服务器,免费试用虚拟服务器
  4. james-2.3.2中的配置
  5. PHP商城数据库安全事务处理方法
  6. FPGA资源不足导致vivado生成bit失败
  7. CLOUD TOOLKIT打包SPRINGCLOUD项目,多模块
  8. 分布式自增ID算法---雪花算法 (snowflake,Java版)---算法001
  9. The Economist经济学人是如何使用Go语言构建内容平台微服务架构的?
  10. Project 3 :Python爬虫源码实现抓取1000条西刺免费代理IP-HTTPS并保存读取
  11. cad迷你画图 mac
  12. 2021-2027全球与中国硅胶注塑机市场现状及未来发展趋势
  13. blk_update_request: I/O error,dev fd0, sector 0
  14. 如何升级MacOS到指定版本
  15. Centos 7 内核文件丢失的快速修复
  16. 清理localstorage_localstorage文件夹可以删除吗
  17. Hello, World! 发明者布莱恩·W.克尼汉的传奇人生
  18. 未来5年中国定调,十四五规划硬核指出云计算列为经济发展战略产业!
  19. 利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只。
  20. 强制删除kubernetes的ns

热门文章

  1. 使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
  2. MyBatis_1 简介
  3. Centos7安装apt-get 在centos下用yum install xxx        不是使用apt-get
  4. android studio 配置国内镜像
  5. android通讯录增删改查,android 通话记录的增删改查 .
  6. 用python进行自然语言处理_Python自然语言处理示例:SVM和贝叶斯分类
  7. element js 包含字符_selenium3.x(10)js弹框处理
  8. linux-basic(7)linux文件与目录管理
  9. jvm(7)-虚拟机类加载机制
  10. th:each嵌套_难题:嵌套的computeIfAbsent