产品体验中心 下载与支持 产品社区 合作代理 |  咨询电话: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, 重新测试,以检查性能测试调优改进是否达到了目标。
 
推荐阅读:
 
 
 
 
 
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。
沪ICP备07036474号 2003-2024 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨询

添加客服微信 欢迎咨询测试工具和测试服务

微信客服
问题
反馈
产品
画册

扫描二维码下载泽众软件企业宣传册

产品画册
返回
顶部

方案咨询

×
提交信息

电话咨询,400-035-7887,安排专业技术售前给您解答(产品试用、技术交流、服务咨询和商务报价)。

您的信息已成功提交!

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