写点什么

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

评论

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

跨端轻量JavaScript引擎的实现与探索

京东科技开发者

四种领导风格的大白话理解

芃篙君

管理

LLVM编译报错解决:collect2: fatal error: ld terminated with signal 9 [Killed]

百度搜索:蓝易云

云计算 Linux 运维 云服务器 ECS

人工智能的本质是编程+数学吗?

算法的秘密

业界首份 GitLab DevSecOps 线上成熟度评估邀您来测

极狐GitLab

Easysearch 内核完善之 OOM 内存溢出优化案例一则

极限实验室

elasticsearch OOM 内存 easysearch

Mysql join加多条件与where的区别

百度搜索:蓝易云

MySQL 云计算 Linux 运维 云服务器

re:Invent 产品体验与感受分享:Amazon ElastiCache Serverless 缓存的即时扩展

亚马逊云科技 (Amazon Web Services)

Serverless

Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

霍格沃兹测试开发学社

嘿!AI 编码新玩法上线!

阿里巴巴云原生

阿里云 AI 云原生

100M 768 维向量数据,Zilliz Cloud 稳定支持 Shulex VOC 业务场景

Zilliz

AI Zilliz 向量数据库 zillizcloud

聊聊CWE 4.14 与 ISA/IEC 62443中,如何保障工业软件的安全性

华为云开发者联盟

安全 开发 华为云 华为云开发者联盟 工业软件

【教程】oc代码混淆_OC代码混淆工具

印度股票盘开发

GangguHK

Vue3 - 插槽 Slots

霍格沃兹测试开发学社

Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%

SelectDB

数据库 大数据 查询性能 物化视图 #数据分析

官宣!前联邦快递亚太区董事总经理 Robin 加入 Tapdata 担任首席运营官

tapdata

数据库

Libcomm通信库:GaussDB(DWS) 为解决建联过多的小妙招

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

IO模型介绍(select、poll、epoll)

京东零售技术

Java 后端 io

Java HashMap 和 HashSet 的高效使用技巧

小万哥

Java 程序人生 编程语言 软件工程 后端开发

两会热议高质量发展 华大北斗用芯领航

江湖老铁

「2024」不再内卷,让AI低代码带你玩点新花样!

优秀

AI 低代码 AI低代码 AI 人工智能

度小满轩辕:金融行业的大模型实战派

脑极体

AI

如何修复MySQL中损坏的表

百度搜索:蓝易云

MySQL 云计算 Linux 运维 云服务器

你知道h.265吧?但关于AV1编码格式你也来了解一下吗?

Geek_ee6d52

如何关闭Windows自动更新

霍格沃兹测试开发学社

10个AI人工智能PPT生成软件,轻松搞定PPT制作!

彭宏豪95

人工智能 在线白板 AIGC 效率软件 AI生成PPT

低代码与前端框架:现代软件开发的新黄金搭档

快乐非自愿限量之名

软件开发 低代码 前端框架

ElasticSearch架构介绍及原理解析

霍格沃兹测试开发学社

ChatGPT是什么意思?从产品简介、替代软件到应用场景等全方位解读!

彭宏豪95

人工智能 在线白板 AIGC ChatGPT 效率软件

✅inventory hint,解决热点数据如何高效更新

派大星

:MySQL 数据库 java 编程 热点数据

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