时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

低延迟 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:003296

评论

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

架构实战营 - 毕业总结

༺NPE༻

docker入门:单机elasticsearch安装记录,保证无坑

小鲍侃java

8月日更

十大排序算法--基数排序

Ayue、

排序算法 8月日更

杜吉普:数字化运营广告营销之道

杜嘉平

机器学习 互联网广告 营销数字化

RocketMQ之Store模块

邱学喆

commitlog consumequeue index ha flush

SpringBoot 数据库操作(集成MyBatis)

xcbeyond

mybatis SpringCloud 8月日更

“互联网+”大赛之AI创新应用赛题攻略:大胆脑洞,共绘智慧生活蓝图

华为云开发者联盟

AI HarmonyOS 大赛 互联网+ HMS Core

Druid 加载 Kafka 流数据 Supervisor 配置

HoneyMoose

百度大脑DuMix AR携明星数字员工首次亮相China Joy,智能虚拟形象系统全面升级

百度大脑

人工智能 ChinaJoy 虚拟偶像 数字人

白话机器学习(9):用户精细化管理背后的秘密:K-means聚类模型

杜嘉平

机器学习

netty系列之:基于流的数据传输

程序那些事

Java Netty nio 程序那些事

淘宝杨宽:淘宝直播低延迟架构演进和实践丨ECUG Meetup 回顾

七牛云

音视频 淘宝 ECUG 七牛云

Spring梳理

十二万伏特皮卡丘

数据产品经理是做什么的?

蒋川

《社会心理学》--从众和服从

箭上有毒

8月日更

毕业设计:设计电商秒杀系统

贯通

#架构实战营

Android开发:获取手机当前连接的WiFi名称

三掌柜

8月日更 8月

Python代码阅读(第8篇):列表元素逻辑判断

Felix

Python 编程 Code Programing 阅读代码

手撸二叉树之最小深度

HelloWorld杰少

数据结构与算法 8月日更

书单 | 振聋发聩,撼世经典!总有那么一些书经得住时间的考验

博文视点Broadview

杜吉普:指标体系多重奏——指标体系建立思路

杜嘉平

数据分析 指标体系 数据运营

[架构实战营一期] 模块四作业

trymorewang

架构实战营

BERT模型为什么这么强?

博文视点Broadview

索信达控股:打造新一代中小银行智能营销平台体系的道与术

索信达控股

前端之数据结构(六)图

Augus

数据结构 8月日更

【Vue2.x 源码学习】第三十一篇 - diff算法-比对优化(下)

Brave

源码 vue2 8月日更

同为电动小车热门,欧拉白猫比拼零跑T03,谁更胜一筹?

科技热闻

Apache APISIX 在移动云的应用

API7.ai 技术团队

开源 网关 APISIX

Prometheus 监控SpringCloud微服务

Rubble

Prometheus SpringCloud 8月日更

oeasy教您玩转vim - 12 - # 词头词尾

o

【Flutter 专题】71 图解基本隐式动画 Widget

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

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