java测试程序优化案例分析

网友投稿 638 2022-05-28

一 问题背景

项目中遇到鲲鹏916服务器运行一段Java测试代码时(解压一个有2w多个小文件的zip包,然后读取及处理),执行时间过长,有50+s

二 原因分析

2.1 硬件信息分析

使用hdparm命令和iostat查看磁盘性能,未发现瓶颈。

java测试程序优化案例分析

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

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:鲲鹏CentOS服务器上源码部署LZ4
下一篇:C语言 | 用getchar读入两个字符,分别用putchar和printf输出
相关文章