读Java性能权威指南(第2版)笔记23_ 性能分析工具

【Linux】async-profiler async-profiler 本文涉及的图片取自Profiling JVM Applications in Production async-profiler是一个对系统性能影响很少的Java采样分析器,不会存在安全点偏差问题. 它具有特定于HotSpot的API,以收集堆栈跟踪并跟踪内存分配。探查器可与基于HotSpot JVM的OpenJDK,Oracle JDK和其他Java运行时一起使用。... 阅读详情

 

1. 性能分析工具

1.1. 必须有足够大的堆来处理数据

1.2. 运行性能分析工具时开启并发GC算法

1.3. 不合时宜的Full GC暂停会导致缓冲区的数据溢出

1.4. 性能分析的一个缺陷就是在应用程序中引入测试会改变其性能

1.5. 在工作时要“附加”到被分析的应用程序上

  • 1.5.1. 通过socket或者被称为JVM工具接口(JVM Tool Interface,JVMTI)的原生Java接口进行的

  • 1.5.2. 目标应用程序和性能分析工具开始交换关于目标应用程序行为的信息

2. 采样分析器

2.1. 性能分析的基本模式

2.2. 想要减小误差,就要延长采样周期并减小采样间隔

2.3. 安全点偏差(safepoint bias)

  • 2.3.1. 只有在线程到安全点之后才可以获取线程的栈轨迹(stack trace)

2.4. 线程自动进入安全点场景

  • 2.4.1. 在同步锁上阻塞

  • 2.4.2. 等待I/O时阻塞

  • 2.4.3. 等待管程时阻塞

  • 2.4.4. 线程挂起

  • 2.4.5. 正在执行Java本地接口(Java Native Interface,JNI)代码(执行GC锁定函数除外)

2.5. 异步分析器(async profiler)

  • 2.5.1. JVM可以在任何时间点提供栈信息,而无须等待线程到达(同步)安全点

  • 2.5.2. 通过AsyncGetCallTrace接口实现的

  • 2.5.3. 异步接口在Java 8被公开,在此之前它是私有接口

  • 2.5.4. 以异步方式收集栈信息的采样分析器引入的测量失真更小

2.6. 火焰图(flame graph)

  • 2.6.1. 一个应用程序调用栈的交互式图表

  • 2.6.2. 自底向上的图表

  • 2.6.3. 开源项目async-profiler

2.7. 自顶向下的调用树(call tree)

3. 探查分析器

3.1. 相对于采样分析器更有侵入性

  • 3.1.1. 会在类加载时更改字节码序列

3.2. 能提供更多关于应用程序内部正在发生什么的有益信息

3.3. 更可能在应用程序中引入性能偏差

  • 3.3.1. 编译器是基于代码的大小来决定是否内联的,而根据代码探查的方式,方法可能不再符合内联的条件

3.4. 最好用于二级分析

  • 3.4.1. 采样分析器将性能问题指向某个包或某段代码,然后探查分析器在需要时深入研究此代码

  • 3.4.2. 用于探查一小部分代码——几个类或包

4. 阻塞方法和线程时间线

4.1. 要知道线程阻塞是不是性能问题的原因,需要检查它们为什么被阻塞

4.2. 通过正在阻塞的方法或者线程时间线分析,可以分辨阻塞的线程

5. 原生分析器

5.1. async-profiler和Oracle Developer Studio的工具

5.2. 可以提供JVM代码和应用程序代码的内部运行信息

5.3. 如果原生分析器显示主要占用CPU资源的是GC时间,那么优化垃圾回收器是正确的选择

5.4. 如果它显示编译线程占用大量时间,那么这通常不会影响应用程序的性能

Netty权威指南 第二版 源码深度解析 Netty是一个高性能的异步事件驱动的网络应用框架,用于快速开发可维护的高性能协议服务器和客户端。它基于Java NIO(New I/O)提供的API构建,能够处理大量并发连接,同时保持低延迟和高吞吐量。Netty的架构设计非常灵活,使得它不仅可以用于简单的客户端-服务器通信,而且还能用作复杂的应用程序的一部分,如游戏服务器、实时交易系统等。本章将为读者提供Netty的入门级概述,为理解后续章节中更深层次的概念打下基础。我们将探讨Netty的主要特点以及它是如何在行业内部得到广泛应用的。 阅读详情

相关推荐

async-profiler:具有AsyncGetCallTrace + perf_events的Java采样CPU和HEAP分析器

异步分析器 该项目是Java的低开销采样分析器,不会遇到。 它具有特定于HotSpot的API,以收集堆栈跟踪并跟踪内存分配。 探查器可与基于HotSpot JVM的OpenJDK,Oracle JDK和其他Java运行时一起使用。 async-profiler可以跟踪以下类型的事件: CPU周期 硬件和软件性能计数器,例如高速缓存未命中,分支未命中,页面错误,上下文切换等。 Java堆中的分配 满足的锁定尝试,包括Java对象监视器和ReentrantLocks 请参阅我们的或以了解所有功能。 下载 (2.0-rc): Linux x64(glibc): macOS x64: 配置文件格式之间的: (将JFR转换为Flame Graph,将JFR转换为FlameScope,将折叠后的堆栈转换为Flame Graph) 稳定发布(1.8.4): Linux x64(gl

java性能优化

使用火焰图进行Java性能分析 性能分析工具的分类 性能分析的技术和工具可以分为以下几类: Counters 内核维护着各种统计信息,被称为Counters,用于对事件进行计数。例如,接收的网络数据包数量,发出的磁盘I/O请求,执行的系统调用次数。常见的这类工具有: vmstat: 虚拟和物理内存统计 mpstat: CPU使用率统计 iostat:磁盘的I/O使用情况 netstat:网络...

csliwang的专栏 1245

集群路径规划实战(一)之EGO-swarm环境搭建与调试

本文详细介绍了EGO-swarm分布式无人机集群运动规划系统的仿真环境搭建与调试全流程。内容涵盖ROS Melodic安装、代码获取、依赖库配置、编译问题解决(如multi_map_server头文件缺失)以及最终通过roslaunch启动集群仿真与Rviz可视化,为学习和研究集群路径规划算法提供了可运行的实战平台。

weixin_29243279的博客 250

Async-profiler介绍

1、介绍 Async-profiler是一个对系统性能影响很少的Java采样分析器,它的实现是基于HotSpot特有的API,通过这些特有的API收集堆栈跟踪和跟踪内存分配,因而其可以和OpenJDK、Oracle JDK和其他基于HotSpot JVM的Java应用在运行时协同工作。 Github项目链接地址:https://github.com/jvm-profiling-tools/as...

冯立彬的博客 1万+

ComfyUI全自动换装工作流:从零到一的实战指南

本文提供了一份详细的ComfyUI全自动换装工作流实战指南。从环境配置、模型准备到核心工作流架构的逐步拆解,手把手教你搭建一条高效的AI换装流水线。文章深入解析了从输入、预处理、融合到输出的四步核心逻辑,并分享了关键参数调优与进阶技巧,旨在帮助电商从业者、内容创作者及AI爱好者轻松实现高质量、高效率的“一键换装”。

weixin_29198045的博客 897

Android无线调试:adb tcpip连接实战指南

本文详细介绍了Android无线调试的完整流程,重点讲解如何使用adb tcpip命令通过Wi-Fi连接设备,摆脱数据线束缚。涵盖环境配置、连接实战、稳定性优化及常见问题排查,帮助开发者高效实现无线adb调试,提升工作效率。

pink的博客 722

vivo Trace 监控追求极致的建设历程

当前vivo的应用监控产品Vtrace经常遇到用户反馈某个Trace链路信息没法给他们提供到实质的帮肋,对此团队一直在持续完善JavaAgent的采集。Vtrace通过全面的同类产品对比分析,结合vivo实际情况自研Profile采集,从而开启涅槃之路。

vivo互联网技术 1221

Android 10.0 SystemUI 屏蔽状态栏消息推送弹出的悬浮通知

在状态栏中,有一些通知类似 消息推送 弹出的 悬浮通知,弹出30秒之后会消失掉 要想屏蔽掉这些通知,首选知道这些通知是怎么产生的 通知类型 NotificationContentInflater.java 详细的介绍各种通知的类型 frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java /** * The defau

安卓兼职framework和app工程师的博客 1542

使用AsyncProfiler对Java应用程序进行性能分析

免责声明:该故事并非由Async Profiler赞助。 总览 大多数Java采样分析器都依靠“ Java虚拟机工具接口(JVM TI) ”来分析Java应用程序。 但是,JVM TI有一个固有的局限性。 JVM TI仅允许在安全点收集堆栈跟踪。 因此,任何使用JVM TI的采样分析器都存在安全点偏差问题。 “ Async Profiler ”不使用JVMTI来获取堆栈跟踪样本,因此避免了...

编程故事的地方 1048

YOLO11 改进系列 | 引入2023年 MLCA 的 C3k2_MLCA 模块,近零参数开销的本地-全局通道注意力,适合检测与分割特征增强

本文提出将MLCA(混合局部通道注意力)模块嵌入YOLOv11的C3k2框架中,形成C3k2_MLCA改进结构。该模块通过5×5局部池化和1×1全局池化双路融合,结合ECA式Conv1d生成通道注意力,在几乎不增加参数量的前提下(仅增加66个参数),实现了局部空间信息与全局通道统计的联合建模。相比传统SE和ECA注意力,MLCA保留了空间分布信息,更适合实例分割等需要精细定位的任务。实验表明改进后模型参数量仅增加0.002%,计算量基本不变,是一种高效的注意力增强方案。

qq_44224801的博客 93

Android 11多窗口+分屏+APP窗口嵌套TaskView实现原理一

然而随着版本的迭代升级,google对分屏的定制差异化也越来越大,Androd 11的分屏用的是split-screen-primary和split-screen-secondary的方式,在systemui中去实现的,其定制化的灵活度不是很高,很多业务都是放到sustemui或者fw去实现,但是随着版本的升高,后面出现了TaskView来替代了老版本的分屏方式,但是Task的核心原理其实和之前的方式是一样的,TaskView来实现分屏。

qq_18420641的博客 2615

《Tomcat权威指南》第二版学习笔记

本篇是《Tomcat权威指南》第二版学习笔记,Jason Brittain著,英文名是:Tomcat:The Definitive Guide,中国电力出版社,2009.9出版。 在工作中经常使用Tomcat、JBoss、Jetty等Java容器,但都不曾系统的学习总结过,本次拿出一个周末的时间,通过本书,较为系统的学习一下Tomcat,并结合互联网的参考资料,写下这篇学习总结,颇有收获。

Java之旅 2794

MIKE水动力笔记13_数字化海图2之克里金插值

在进行MIKE水动力建模之初,需要准备好水深数据,本专题系列博文主要讲解如何将扫描版JPG格式海图数据在ArcGIS中进行数字化并制作成xyz水深地形数据,用的克里金插值方法,仅供参考。

晏长街的博客 2881

Java性能权威指南(第2版)读后总结与感想

语言在不断进化发展、jvm也在不断进化发展,在采用java 8 不变的情况下,使用包含新的垃圾回收算法的jdk,使用新的垃圾回收算法能够获得更好的性能体验。了解不难,学精很难,性能调优不仅仅是技术活,更是一门艺术,需要考虑的场景、判断的条件纷繁复杂,各种开关也会相互影响,使用的不好,还不如采用默认方式。验证、测试自然少不了各种工具,既有原生自带的,也有开源或者商业的第三方工具,在这个方面,介绍的也较详细,能够帮忙我们分析性能问题的源头。有些性能建议是包治百病的,比如,使用更小的对象;

lyingSeven的博客 209

snmp MIB详解

每个 MIB 对象都由一个对象标识符(OID)和对象类型组成。OID 是一个由多个数字组成的路径(类似于 IP 地址),它标识了 MIB 中对象的层次结构。

dlz0836的博客 3721

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【亲测免费】 《Java 性能权威指南》:解锁Java性能优化的终极宝典

《Java 性能权威指南》:解锁Java性能优化的终极宝典 【下载地址】Java性能权威指南下载分享 Java 性能权威指南下载 项目地址: https://gitcode.com/Open-source-documentatio...

gitblog_06601的博客 902

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java 性能权威指南下载

Java 性能权威指南下载 【下载地址】Java性能权威指南下载分享 Java 性能权威指南下载 项目地址: https://gitcode.com/Open-source-documentation-tutorial/4fee9...

gitblog_06696的博客 510

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java优化 pdf_Java性能优化权威指南 PDF扫描[132MB]

Java性能优化权威指南主要为Java SE 和Java EE 应用的性能调优提供建议。主要包括以下几方面:性能监控、性能分析、Java HotSpot VM 调优、高效的基准测试以及Java EE 应用的性能调优。《Java性能优化权威指南》适合所有Java 程序员、系统调优师和系统架构师阅读。Java性能优化权威指南 目录:第1章 策略、方法和方法论 11.1 性能问题的现状 11.2 性能分...

weixin_30679293的博客 1119

《Java性能权威指南》学习笔记

英文版《Java Performance The Definitive Guide》,出版于2014年,中文版出版于2016年,相比于《深入理解Java虚拟机》,讲的更加透彻、准确。适合读一遍,然后做长期参考。 作者Scott Oaks是Oracle公司的一位架构师,专注研究Oracle中间件软件的性能。加入Oracle之前,他曾于Sun Microsystem公司任职多年,在多个技术领域都有建树,包括SunOS的内核、网络程序设计、Windows系统的远程方法调用(RPC)以及 OPEN LOOK虚拟窗口

Java之旅 4960

Netty权威指南第二版PDF资源下载:深入学习Netty的首选资料

Netty权威指南第二版PDF资源下载:深入学习Netty的首选资料 【下载地址】Netty权威指南第二版PDF资源下载 本仓库提供《Netty权威指南(第二版)》PDF资源,这是一本深入解析Netty网络通信框架的经典书籍。内容涵盖Netty的核心组件、异步和事件驱动概念、Bootstrap与ServerBootstr...

gitblog_06797的博客 964

【读书笔记】Java性能权威指南 读书笔记

文章目录1.导论2.性能测试方法3, Java性能调优工具3.2 java 监控工具3.2.1 基本信息3.3 性能分析工具3.3.1 采样分析器3.3.2 探查分析器3.3.3 阻塞方法和线程时间线3.3.4 本地分析器3.4 Java任务控制3.4.1 Java飞行记录器4. JIT编译器4.1 编译器介绍4.2 调优入门: 选择编译器类型4.2.1 优化启动4.2.2 优化批处理4.2.3 优化长时间运行的应用4.3 Java和JIT编译器版本4.4 编译器中级调优4.4.1 调优代码缓存4.4.2 

九师兄 745

Tomcat权威指南第二版PDF资源下载介绍:全面掌握Tomcat服务器的宝典

Tomcat权威指南第二版PDF资源下载介绍:全面掌握Tomcat服务器的宝典 去发现同类优质开源项目:https://gitcode.com/ 《Tomcat权威指南第二版PDF资源下载》为您提供了一本全面解析Tomcat服务器各方面内容的权威指南,是学习、使用和优化Tomcat的理想选择。 项目介绍 《Tomcat权威指南第二版》是一本深入浅出地介绍Tomcat服务器各方面知识的书籍,包括安装...

gitblog_06726的博客 1049

Netty权威指南学习笔记

最近花了一段时间系统的学习了Netty框架,包括《Netty in Action》以及《Netty权威指南》,对于博主自己来说,我觉得《Netty权威指南》要更适合博主。 很厚的《Netty权威指南》权威指南,虽然上面一大部分是例子代码,当然有种跟着Netty官网学小demo的感觉。 好记性不如烂笔头,所有代码均手抄Maven实现了一遍,所有例子均可运行,当然自己的学习笔记。 Chapter2 ...

anLA_的专栏 613

Java性能权威指南-总结23

警如,应用程序运行的服务器比较弱,是个双核的机器,它连接的是一个性能强大、调优良好的数据库服务器,那么在这种情况下,很可能应用还没施加多大的压力到数据库,应用服务器自身的CPU就已经达到了100%。典型的情况下,这种设置能取得最好的性能:所有的程序线程都不需要等待数据库连接的释放,数据库亦有足够的资源处理来自应用程序的负荷。对于JDBC驱动程序的性能要保持谨慎怀疑的态度:经常会出现这样的情况,即某个驱动程序在特定的环境下表现的性能优于其他供应商,但在自己的环境中,采用同样的配置效果却不尽人意。

weixin_42583701的博客 395

【亲测免费】 阿里巴巴Java开发手册(黄山版)2022.2.3发布:提升Java开发质量的权威指南

阿里巴巴Java开发手册(黄山版)2022.2.3发布:提升Java开发质量的权威指南 【下载地址】阿里巴巴Java开发手册黄山版2022.2.3发布分享 本仓库提供《阿里巴巴Java开发手册(黄山版)2022.2.3发布》的资源文件下载。该手册是阿里巴巴集团为了规范Java开发、提升代码质量和团队协作效率而制定的一份权...

gitblog_06525的博客 579

【亲测免费】 《Netty权威指南(第二版)》PDF资源下载

《Netty权威指南(第二版)》PDF资源下载 【下载地址】Netty权威指南第二版PDF资源下载 本仓库提供《Netty权威指南(第二版)》PDF资源,这是一本深入解析Netty网络通信框架的经典书籍。内容涵盖Netty的核心组件、异步和事件驱动概念、Bootstrap与ServerBootstrap的使用、WebSo...

gitblog_06791的博客 644
上一篇: 读Java性能权威指南(第2版)笔记22_ 操作系统工具和Java监控工具
下一篇: 读Java性能权威指南(第2版)笔记24_ Java飞行记录器JFR
躺柒
博客等级 码龄4年 7004粉丝 1320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值