java测试程序优化案例分析
【摘要】 java测试程序调优通过设置jvm的最小内存Xms参数可以有效提升处理效率
一 问题背景
项目中遇到鲲鹏916服务器运行一段java测试代码时(解压一个有2w多个小文件的zip包,然后读取及处理),执行时间过长,有50+s
二 原因分析
2.1 硬件信息分析
使用hdparm命令和iostat查看磁盘性能,未发现瓶颈。
2.2 软件分析
该代码运行时为单核单进程的,从top信息看,唯一瓶颈在cpu上,单个cpu已经超过100%
不过如果只是cpu瓶颈的话,TaiShan100执行应该时间不会这么长,说明还有其他瓶颈
通过perf监控,和热点函数分析,发现libjvm.so等调用较高
三 解决方案
在执行测试程序时增加jvm最小内存参数(java -Xms48m)后,执行时间有明显降低,结合性能优化十板斧中磁盘IO的调优,将测试程序绑定到一个空闲的核上(如下图示例中绑定到cpu24)最终执行时间稳定在16s左右
四 总结
调优后,TaiShan服务器上执行java测试程序执行时间从50s优化至16s,调优的思路总结如下:
1. 在java类测试程序调优过程中,除了常规的十板斧之外,还要结合测试模块特点,对比下jdk版本号以及JVM内存相关的设置。
2. JVM内存相关设置参考:https://www.kancloud.cn/hx78/java/334790
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)