【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

评论

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

会用redis吗?那还不快来了解下redis protocol

冉然学Java

Java 分布式 构架 Redis 数据结构

双目立体匹配之视差优化

秃头小苏

7月月更 双目立体匹配

FAQ制作工具推荐

Baklib

企事业单位该如何建设知识管理体系

Baklib

多链多币种钱包系统开发跨链技术

薇電13242772558

钱包 跨链技术

CSS神奇的卡片悬停交互效果

南城FE

CSS 前端 动画 鼠标悬浮 7月月更

使用ServiceWorker提高性能

devpoint

JavaScript Service Worker 7月月更

解决浏览器回退表单重复提交问题

沃德

程序员 javaWeb 7月月更

Java基本概念详解

五分钟学大数据

Java 7月月更

不习惯的 Vue3 起步五 のapiHooks封装

空城机

Vue3 7月月更

系统首页 DIY,你的个性化需求 Pro 系统来满足!

CRMEB

Java 在Word文档中查找和高亮文本

在下毛毛雨

Java word文档 查找与高亮

硅谷来信:Google、Facebook员工的“成长型思维”

博文视点Broadview

java培训之Java8 Stream 代码简化是如何实现的

@零度

stream JAVA开发

语音直播app源码

开源直播系统源码

直播系统源码 开源源码 语音直播系统源码

基于SpringBoot 的MCMS系统,完全开源,直接商用太爽了

冉然学Java

Java 源码 springboot 构架

Qt|QWT绘制柱状图一类多种颜色

中国好公民st

qt 7月月更

为什么说企业需要具备企业知识管理的能力?

Baklib

某易跟帖频道,接口溯源分析,反爬新技巧,必掌握一下

梦想橡皮擦

Python 爬虫 Python爬虫 7月月更

Hexo在github上构建的博客

沃德

程序员 Hexo 博客 7月月更

数据仓库分层——DWD DWS ADS傻傻分不清楚

怀瑾握瑜的嘉与嘉

数据仓库 7月月更

基于Qt设计的课堂考勤系统(采用RDS for MySQL云数据库 )

DS小龙哥

7月月更

【LeetCode】数组美丽值求和Java题解

Albert

LeetCode 7月月更

龙芯高级工程师直播:视频编解码基础知识入门 | 第 31 期

OpenAnolis小助手

直播 基础 视频编解码 龙蜥大讲堂 龙芯中科

http请求redirect的问题

飞翔

golang

MySQL进阶(一)主外键讲解

No Silver Bullet

MySQL 数据库 7月月更 主外键

营销玩法多变,搞懂规则是关键!

CRMEB

全面打通 DevOps 数据链的研发效能度量平台

思码逸研发效能

开源 DevOps 研发效能 效能度量

Redis 过期的数据会被立马删除么?大有玄机

码哥字节

redis 底层原理 7月月更

对象的内存分配一定都是在堆空间吗?

领创集团Advance Intelligence Group

代码优化 内存分配

微软 Edge 浏览器 Tracking Prevention 的强制措施的一个例子

Jerry Wang

JavaScript microsoft 浏览器 前端开发 7月月更

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