生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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

评论

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

深入理解搜索引擎——详解query理解

药老算法

搜索引擎 nlp query纠错 语义分析 意图识别

一文看懂filecoin挖矿的成本到底有哪些?

IPFS fil成本 fil挖矿

作业1

🐻🐻

架构师训练营第 1 期 作业一

秒懂!进制和位运算

Ayue、

位运算 二进制

NNB牛气冲天系统软件开发搭建

Takin Talks·上海 |开源后首场主题研讨会来了,一起解密Takin技术吧!

TakinTalks稳定性社区

Swarm挖矿APP系统开发

获客I3O6O643Z97

挖矿挖什么币好 ipfs和swarm哪个更有价值

Python OpenCV 之图像梯度,Sobel 算子、Scharr 算子和 laplacian 算子

梦想橡皮擦

7月日更

校友小程序图片安全审核方案与security.imgSecCheck不能校验超过1M图片的解决思路

CC同学

IPFS分布式存储矿机挖矿系统开发

获客I3O6O643Z97

挖矿 ipfs如何挖矿

淘悠优软件系统开发内容

乐挖矿场软件系统开发案例

揪出那个无主键的表

Simon

MySQL 主键

日更总结 6月日更 21天写作

万里无云万里天

6月日更

计算机基础知识 -- 位,字节,字符

转山转水

DOGT狗狗通证软件系统开发公司

前端智能化 or 低代码,也许不是个选择题

清秋

大前端 低代码 智能化

有哪些好用的团队文档和技术资料管理的工具?

万事ONES

在线文档 ONES 协同办公

有哪些适合大型系统的项目开发管理工具?

万事ONES

项目管理 研发管理 ONES

通过运行期类型检查实现泛型算法

喵叔

7月日更

Rust从0到1-智能指针-Rc<T>

rust 智能指针 引用计数 smart pointer Rc<T>

初探 Redis 客户端 Lettuce:真香!

vivo互联网技术

Java 数据库 redis redis cluster lettuce

Pandas高级教程之:GroupBy用法

程序那些事

Python 数据分析 pandas

免费分享Spring与SpringMVC开发的优秀图书

Java入门到架构

Java spring Java书籍推荐

PHA项目挖矿平台系统开发App

获客I3O6O643Z97

挖矿矿池系统开发案例 PHA矿机挖矿 PHA质押挖矿

目前有哪些好用的用例管理工具?

万事ONES

测试用例 ONES 测试管理

模块一

吴科🍀

【Flutter 专题】89 图解基本 Overlay 悬浮新手引导

阿策小和尚

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

Docker 超详细版(基础+进阶)

若尘

Docker 容器 镜像

SUN太阳币APP系统开发方案

filecoin矿工的收益有哪些?

fil fil收益 ipfs挖矿

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