记一次性能调优总结
作者:网络转载 发布时间:[ 2010/8/18 9:24:08 ] 推荐标签:
在运行测试工具的时候,发现运行非常缓慢,运行了4个多小时还没有运行完成。
如此慢的运行效率,肯定需要对程序进行优化,否则我们的用例不知道何年何月才能运行完成。
先简单描述下需求:
需要对两个表的数据进行对比,判断两个表的数据是否相等,数据量有17000左右,每个表有80个字段。
这两个表有相同的字段,也有不相同的字段,而且两个表都在不同字符集的数据库中。
我们的用例是用java程序开发的。
调优一般是有通用的规则,同时也需要有敏感的触觉,感觉我们程序可能出问题的地方。
下面我们按部班的进行调试
一、检查进程的在操作系统的中的占用资源情况
发现占用内存50M左右,cpu占用多为 40%
看起来没有异常,如果有是内存不够
网络情况,由于在本机,网络速度应该可以排除。
二、检查程序内部算法
检查内部算法,调试程序,发现一条数据的对比算法需要执行80多次sql语句,耗费1分钟作用。
照这样计算需要差不多30个小时才能完成。
分析程序逻辑,改进算法,是程序的对比算法效率不高,对sql次数进行减少为一次。
测试程序,发现运行整个完成14分钟。
终于发现了程序大的资源消耗在这里。
三、检查数据库情况
检查数据库两边的表,发现新表对查询条件的字段没有加索引。
然后加上索引,测试程序发现只要3分钟左右运行完成。
四、检查jvm运行情况
对应jvm进行监控,发现gc非常频繁,程序运行完成使用了3万多次gc。
修改jvm启动参数内存为1g,运行程序,只耗费了30秒完成了。
30秒完成我们的测试用例,已经达到了优化的目标,当然或许还有优化的余地。
从这次优化可以发现应用逻辑的算法改进和数据库的优化,带来的效率是很可观的。
jvm的监控也是非常重要,jvm的参数配置不合适,很难发挥机器的作用。
注:本文出自xiaohanjiang的51Testing软件测试博客:http://www.51testing.com/?294525
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11