写点什么

低延迟 Profile 工具 Flight Recorder 被移植到 Java 8

  • 2019-12-03
  • 本文字数:960 字

    阅读完需:约 3 分钟

低延迟Profile工具Flight Recorder被移植到Java 8

OpenJDK 的开发者们将强大的低延迟profile能力带到了 Java 8 中,可以使用非常低的开销来监控 JVM 性能。这个工具叫作 Flight Recorder,现在已经在多个版本的 JDK 中可用,比如 AdoptOpenJDK。


经过十多年的开发,Java Flight Recorder(JFR)已经为 JRockit 和 WebLogic Server 提供了底层性能监控能力。随着 JRockit 和 HotSpot 的合并,这个工具也被带到了 Java 8 和 JDK 7u40 的 HotSpot 中。与其他外部性能监控系统不一样,JFR 直接被内置在 JDK 中,可以准确地监控性能,不会因为安全点或采样对监控造成影响。JFR 的性能诊断非常准确,只占用大约 2%的开销。这些诊断数据为开发者和运维人员提供了收集准确的性能数据的能力。


JFR 的源代码在 JDK11 中,免费公开,所有人都可以访问。在被开源之前,这个功能只作为 Oracle JDK 的一个收费特性,需要获得 Java SE 高级版许可才能使用。要在 Oracle JDK 中打开这个功能,需要使用许可开关或者许可的 JMX 连接。将 JFR 移植到开源版本的 JDK 中让免费用户也能够在非 Oracle JVM 中使用这个功能。随着 Oracle 停止为 JDK 8 提供免费支持,并且需要商业许可才能使用 JDK 11+,很多开发者转向使用免费版本,比如 AdoptOpenJDK 的 HotSpot。


对于开发者来说,JFR 有两个方面的用处:Flight Recorder 是一个自动化的黑盒记录器,已经内置在 JVM 中,用于记录信息。运维人员可以通过单独运行的可视化控制台 Mission Control 来控制黑盒,计算指标或者创建性能快照。


JFR 与其他商业版或免费版的 profiler 有一些显著的不同。最大的不同是 JFR 已经内置在 JVM 中,不需要集成额外的工具。有很多 profiler 专注于高层的指标,比如请求/响应负载时间,但 JDK 层并没有“Web 请求”的概念。所以,JFR 默认提供的指标更多的是面向 JVM 的原生操作。这里特别要提到它的高级垃圾回收分析功能。与其他只是简单收集垃圾回收统计信息不同的是,JFR 会告诉我们收集了哪些垃圾以及这些垃圾是从哪里抛出来的。借助这个功能,开发人员可以确切地知道如何改进性能,以及在什么时候不应该进行垃圾回收调优。


想要了解Flight Recorder的开发人员可以先看看 Marcus Hirt 的演讲,他是 JDK Mission Control 的负责人。Mikael Vidstet 在洛杉矶 QCon 上也做了一个相同话题的演讲。


原文链接


Low Latency Profiling Now Available in Java 8


2019-12-03 08:002933

评论

发布
暂无评论
发现更多内容

Appium常用操作之「微信滑屏、触屏操作」

清菡软件测试

零基础IM开发入门(四):什么是IM系统的消息时序一致性?

JackJiang

音视频社交的应用和优势

anyRTC开发者

音视频 WebRTC 语音 直播 RTC

移动端堆栈关键行定位的新思路

移动研发平台EMAS

移动应用 应用崩溃 崩溃分析

震惊!线上四台机器同一时间全部 OOM,到底发生了什么?

AI乔治

Java 架构

Java先驱者发布最新Java全栈面试“秘籍”,助力你吃透Java新特性!

Java架构追梦

Java 学习 编程 架构 面试

第七周课后总结

饭桶

架构师训练营 1 期 - 第六周 - 技术选型2

三板斧

极客大学架构师训练营

让你怀疑人生的重载和重写的区别

艾小仙

Java 编程语言

SpringBoot- 技术专题 -Websocket+Nginx出现404问题

码界西柚

谈谈项目中主动full gc的一些问题

AI乔治

Java 编程 架构 JVM GC

鬼知道我经历了什么!全靠这份999页Java面试宝典,我刚拿到美团offer!

Java架构追梦

Java 程序员 架构 面试 美团

让容器应用管理更快更安全,Dragonfly 发布 Nydus 容器镜像加速服务

阿里云基础软件团队

云原生

React Ref 如何使用(译)

西贝

Java 翻译 React Hooks Ref

LeetCode题解:90. 子集 II,迭代+位运算,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

阿里五位大佬总结的操作系统+程序员必知硬核知识大全离线版pdf火了,在Github上获赞89.3K+,现已开源!

996小迁

架构 面试 操作系统 计算机

百万年薪技术大佬的读书之旅

四猿外

Java 书籍推荐 书单 书单推荐 书籍

云原生时代下数据库管理工具的变革

BinTools图尔兹

数据库 sql 云原生 数据治理 工具软件

JVM垃圾回收与一次线上内存泄露问题分析和解决过程

AI乔治

Java 编程 架构 JVM 内存泄漏

JUC之 FutureTask 源码与工作原理分析

AI乔治

Java 编程 架构 jdk 线程

第七周课后练习

饭桶

低代码开发平台的敏捷之力

雯雯写代码

敏捷开发 低代码 信息化

跟Kafka学技术系列之时间轮

AI乔治

Java 编程 架构

微信小程序接口测试时appid为空如何解决

测试人生路

微信小程序 接口测试

JUC 之ThreadPoolExecutor实现原理分析

AI乔治

Java 架构 jdk 线程

AI 科学家带你快速 Get 人工智能最热技术

京东科技开发者

人工智能

高频面试题:秒杀场景设计

艾小仙

Java 面试 高并发 秒杀

《Among Us》火爆全球,实时语音助力派对游戏开启第二春

ZEGO即构

语音 游戏 RTC

LeetCode题解:90. 子集 II,迭代,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

SpringBoot-技术专题-Websocket消息推送和广播消息推送

码界西柚

腾讯安全披露多个0day漏洞,Linux系统或陷入“被控”危机

低延迟Profile工具Flight Recorder被移植到Java 8_编程语言_Erik Costlow_InfoQ精选文章