性能调优通俗来讲就是对计算机硬件、操作系统和应用有相当深入的了解,调节三者之间的关系,实现整个系统(包括硬件、操作系统、应用)的性能最大化,并能不断的满足现有的业务需求。在判定软件存在性能缺陷和瓶颈之后进行优化,在性能测试中属于很重要的一个环节。

性能调优

性能调优主要遵从以下流程:

第一步定位问题:判端是代码、数据库及中间件配置、操作系统配置、网络配置、硬件配置哪个环节是问题来源,只有找准方向才能找到问题;

第二步确定原因,具体到算法、共享锁、SQL效率低、索引、线程数、等待超时时间、带宽哪个环节是问题根源,找到问题原因才有可能解决问题;

第三步就是确定优化目标和方案确定,例如提高吞吐量到xxx,缩短响应时间到xxx,提高最大并发到xxx……这一步是根据实际业务模型做出的战略调整,注意结合实际,切忌异想天开;

第四步就是复测,测试人员使用原来的场景和脚本执行测试,对比测试结果判断是否达到调优目标,没有达到目标就要反复测试贴近目标;

最后一步是分析结果,评估目标是否达到和系统性能改善情况,以此来判断优化调整是否可以结束。

常用调优方法:

限流,通常是限制发送packet的频率,从而在网络IO消耗可接受的情况下来发送packget。

内存消耗严重的解决方法:

释放不必要的引用:代码持有了不需要的对象引用,造成这些对象无法被GC,从而占据了JVM堆内存。(使用ThreadLocal:注意在线程内动作执行完毕时,需执行ThreadLocal.set把对象清除,避免持有不必要的对象引用,使用对象缓存池:创建对象要消耗一定的CPU以及内存,使用对象缓存池一定程度上可以降低JVM堆内存的使用。

最后,大家对小编关于性能调优的分享都了解了吗?性能调优是针对性能测试结果进行的优化分析。以上只是对性能调优的流程和方法介绍,后续我们将分享更多有关知识。