泽众软件
首页 关于我们 下载与支持 咨询电话:400-035-7887/021-6072 5088
当前位置:泽众软件测试网-产品新闻-正文

记一次java程序性能测试优化实践

发布时间:2020-11-13
某个tomcat的系统,java开发。其中一个功能是,选中其中“一棵树”,把它的内容插入到另外一个完整的“树”,或者“森林”中。对于在同一层上的相同节点进行合并,比如树上的id标识了相同的节点标记,相同的进行合并,以保持树的完整性。
 
这个算法执行的时间将近120秒才能完成,当节点比较多的情况下。
如何进行性能测试优化?
首先,我们看性能消耗在哪里。
1) 查看单个sql语句的时间有多少。我们发现执行单个sql语句的时间很少,瓶颈应该不是在这里;
2) 查看单个简单程序的执行时间,算法本身也很快,消耗时间并不多;
3) 但是,我们发现,这个操作,执行sql语句的次数,有几百次!!!
 
再仔细查看程序代码,使用一个比较复杂的树,发现sql语句执行的太多了!!!很多循环中包含了sql语句,并且没有prepare。
问题的根源在于,我们把数据库当成了内存,做存储和计算来使用,这样就存在大量的sql语句来访问数据库。这个算法的问题就在于此。如果把数据库访问操作改造成内存操作,那么会怎么样?
于是,我们改造了一下,大概2个小时完成,从几百次sql语句,降低到三次!
执行速度,从120秒,降低到2秒!!!
 
回顾一下我们的调优过程:
1, 计时。就是分段计算每一段算法所消耗的时间;
2, 分析sql语句执行的速度,看是否正常;
3, 分析算法缓慢的原因。
4, 制订改进的解决方案,并且实施。
5, 重新测试,以检查性能测试调优改进是否达到了目标。
 
推荐阅读:
 
APP测试中压力测试和性能测试区别
 
性能测试计划需要考虑的因素
 
性能测试时常见几种协议
 
压力测试中,如何正确认识在线用户和并发用户两个概念
 
软件性能测试需求分析四种方法
沪ICP备07036474号 2003-2021 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
公众
账号

扫描二维码
关注泽众微信公众号

泽众官网公众号
问题
反馈
返回
顶部

方案咨询

×
提交信息

我们会在24小时内,给您电话回复!或者直接电话咨询,400-035-7887,给您专业的解答。

您的信息已成功提交!

我们的客服人员稍后会与您联系