嘀荼酴 发表于 2025-11-24 16:55:00

JVM Memory Profiling

Async Profiler

最近一直忙着搞AI 的application adoption, 都没空记录点东西。 趁着最近有个memory的profiling,记录一下如何进行memory profiling.
对于大部分大厂,应该有成熟的监控工具,比如dynatrace,消费级产品使用起来很方便。这里不详细介绍。
Dynatrace有个很方便的火焰图,对于本地我也想要这个效果,那么你可以使用 Async Profiler。

安装

去这里安装 Async Profiler
这里是文档
Quick Start(本地最常用三连):
asprof -d 30 -e cpu -o flamegraph -f cpu.html <PID>
asprof -d 30 -e alloc --total -o flamegraph -f alloc.html <PID>
asprof -d 30 -e alloc --live -o flamegraph -f heap.html <PID>CPU 看热点;alloc 看高频瞬时分配;alloc --live 看仍存活对象来源(等价于之前的 -e heap)。
基本操作

asprof 提供了 start, stop, dump, status 等基本操作,可以更灵活地控制采样过程。-d 参数只是 start -> sleep -> stop 的一个快捷方式。

[*]start: 启动采样。分析器会持续在后台运行。
[*]stop: 停止采样并输出报告。
[*]dump: 在不停止采样的情况下,生成一份当前已采集数据的快照。
[*]status: 查看当前采样状态。
例如,你可以手动开始,在需要的时候dump,最后再停止:
# 启动CPU采样
asprof start -e cpu <PID>

# ... 执行一些操作后 ...

# dump出一份火焰图,但采样并未停止
asprof dump -o flamegraph -f cpu-dump-1.html <PID>

# ... 再次执行一些操作 ...

# 停止采样并生成最终报告
asprof stop -o flamegraph -f cpu-final.html <PID>JFR + JMC

Quick Start

Use VisualVM 创建一个JFR,或者你也可以用命令行,如下图

在JMC里查看

JFR+JMC功能很强大,可以进行很多topic的profiling,比如cpu,锁。
为什么用 JFR

<ul>低开销(生产可常驻,默认

箝德孜 发表于 2025-12-9 01:31:48

分享、互助 让互联网精神温暖你我

袂沐 发表于 2026-1-13 18:54:03

yyds。多谢分享

表弊捞 发表于 2026-1-14 07:57:21

yyds。多谢分享

百谖夷 发表于 2026-1-16 06:59:25

鼓励转贴优秀软件安全工具和文档!

埤兆 发表于 2026-1-18 06:30:17

过来提前占个楼

司马黛 发表于 2026-1-20 01:40:36

收藏一下   不知道什么时候能用到

皮仪芳 发表于 2026-1-20 14:49:23

东西不错很实用谢谢分享

蔓好 发表于 2026-1-21 05:51:55

收藏一下   不知道什么时候能用到

揉幽递 发表于 2026-1-25 07:57:12

谢谢分享,试用一下

怃膝镁 发表于 2026-1-29 08:18:21

东西不错很实用谢谢分享

蚬蕞遂 发表于 2026-2-9 14:49:41

谢谢分享,试用一下

况雪柳 发表于 2026-2-9 17:10:18

感谢,下载保存了

这帜 发表于 2026-2-9 19:30:31

很好很强大我过来先占个楼 待编辑

阎逼 发表于 2026-2-10 02:23:04

喜欢鼓捣这些软件,现在用得少,谢谢分享!

宇文之 发表于 2026-2-10 16:44:09

感谢分享,下载保存了,貌似很强大

貊淀 发表于 2026-2-12 16:06:09

谢谢楼主提供!

村亢 发表于 2026-2-13 16:50:51

不错,里面软件多更新就更好了

孜尊 发表于 2026-2-22 10:06:41

分享、互助 让互联网精神温暖你我

聚怪闩 发表于 2026-2-28 23:16:30

感谢,下载保存了
页: [1] 2
查看完整版本: JVM Memory Profiling