20丨Java & C ++:代码级监控及常用计数器解析(下)
该思维导图由 AI 生成,仅供参考
Java 类应用查找对象内存消耗
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了在Java和C/C++开发语言中进行代码级监控及常用计数器解析的方法。首先,讨论了在Java中查找有问题的内存对象和抓取对象占用的内存大小的技术。然后,简要介绍了在C/C++中查找方法执行时间和对象的内存消耗的方法。作者强调了不同语言都有相应的工具和方法来捕获相关内容。接着,从内存趋势判断和查找增加的内存两个逻辑出发,详细介绍了性能测试过程中内存变化的判断方法,并给出了实际案例进行分析。最后,指出在Java中查找内存消耗的手段还有很多,并给出了两种常用又易用的方式。整体而言,本文内容涵盖了Java和C/C++语言中代码级监控及常用计数器解析的相关知识点,对于从事性能测试分析的人员具有一定的参考价值。文章通过介绍google-perftools和valgrind等工具,以及相应的使用方法,为读者提供了在性能分析过程中解决代码问题的思路和方法。文章还提出了两个思考题,引导读者深入思考代码的性能分析过程和分析链路。
《性能测试实战 30 讲》,新⼈⾸单¥59
全部留言(10)
- 最新
- 精选
- kaixin时间和空间。 时间是指执行的够不够快,快才能在同样的时间内处理更多的请求 空间就是内存,每个形成的对象小,或者使用后释放快,才能在固定内存下有更多对象可以使用内存
作者回复: 说的非常好。
2021-01-199 - johnny对代码的性能分析过程中,主要是哪两点? 1.运行速度 2.占用内存 针对代码分析的这两点,有什么样的分析链路? 链路的分析思路还是先分析系统架构、然后分段,分层,先全局后定向。 运行速度分析链路 响应时间长->分段拆分时间->操作系统->进程->线程->方法或函数CPU执行时间 占用内存分析链路 响应时间长->分段拆分时间->操作系统->进程->线程->对象或变量内存使用情况
作者回复: 总结的不错,可以出师了。哈哈
2021-05-294 - 小老鼠代码级的性能分析应该由开发人员作还是测试人员作?我个人观点是测试人员测试是否存在性能问题,比如内存泄漏,再由开发人员去定位,当然有全栈工程师更好。
作者回复: 这看似是一个不需要回答的问题。😃😃😃 我只关心问题是否能解决,不关心是谁。如果你非要划分为测试人员不懂开发技能是合理的话,那你这个说法就没毛病。 而对我带的性能团队来说,开发能力是基本能力。
2020-02-2522 - 王顺时间和空间
作者回复: 精辟。
2021-11-22 - jy原文内容:“实际上,这张图说明以下四点:年轻代(第三列)、年老代(第四列)全满了,持久代在不断增加,并且也没有释放过。两个保留区(第一列、第二列)都是空的。Yonug GC(第六列)已经不做了。Full GC(第八列)一直都在尝试做回收的动作,但是一直也没成功,因为年轻代、年老代都没回收下来,持久代也在不停涨。如果出现了 1 和 2 的话,不用看什么具体对象内存的消耗,只要像网上那些只玩 JVM 参数的人一样,调调参数就行了。“ 问题:具体是如何调参数呢?
作者回复: 加大jvm内存。但不能解决问题。只有解决瓶颈才可以解决问题。
2021-06-25 - alley老师,我在平时测试性能基线中发现有缓慢的性能泄露问题,开发说不用管,触发FullGC来回收内存;那FullGC的时候,是不是系统业务不可用?
作者回复: stw的时候服务肯定不可用呀,不管什么gc策略都会有fullgc。 但是你的描述有不太合理的,你说有泄露。有泄露就意味着fullgc也回收不了,能回收得了就不叫泄露了。 所以你要给出具体的数据拿来看看才能知道。
2021-01-04 - chailyn卡在分析了,windows系统如何监控分析c/c++语言程序的CPU,感觉还是很懵呀
作者回复: 手段是一样的。
2020-10-19 - 月亮和六便士高老师,1. gc, FGC 多久一次算正常?我经常看到书籍上说什么频繁的Fgc ,不知道怎么样算频繁,2. jvm设置多大 与总内存有比例关系么,比如我有120G内存,我设置3G xmx 这个要怎么确定?
作者回复: 1. 没有确定的标准说FGC多久一次正常。只要对性能不产生大的影响就可以。 2. 这个没有标准,要根据实用架构来做计算。
2020-04-083 - 安排valgrind分析大型程序比较慢,有没有其他好用的快的工具呢?
作者回复: 精准分析,在代码中加perftool应该会快一些。或者根据目标用调试工具。
2020-04-01 - 吴小喵老师,为什么我的jvisualvm没有Deltas
作者回复: 截图发我看看。
2020-02-28