JAVA性能调优之基本调优策略和手段

来源:互联网 发布:vod电影点播软件 编辑:程序博客网 时间:2024/06/05 18:33

性能优化的一般步骤
对系统软件进行优化,首先需要有明确的性能目标,清楚地指出优化的对象和最终目的.其次,需要在目标平台上对软件进行测试,通过各种性能 监控和统计工具,观测和确认当前的系统是否已经达到相关目标,若已经达到,则没有必要再进行优化;若当前系统性能尚未达到优化目标.则需要查找当前的性能瓶颈.
可能成为性能瓶颈的因素有很多,比如:磁盘I/O,网络I/O和CPU.当找到性能瓶颈后,首先需要定位到相关代码,确认是否在软件实现上存在问题或者优化空间.若有,则进行代码优化;若已经没有代码优化空间,则需要考虑进行JVM层,数据库层或者操作系统的优化.甚至,可以考虑修改原有设计, 或则提升硬件性能.
当优化完成之后,需要在目标平台上进行确认测试.若达到性能目标,则优化过程结束,若没有,则需要再次查找系统瓶颈,以此反复程序优化流程图
软件性能优化虽然能提升软件的性能,但是优化过程往往伴随着一些风险和弊端.比如,为了优化某一段代码的实现,就需要重写原来的算法,而这个过程往往就会为程序带来bug,重新实现新的功能模块也同时以为着需要重新对其进行完整的功能测试,使优化前所有做的测试工作变得毫无意义.而且,优化后的代码与优化前的代码相比,可能会比较晦涩难懂,从一定程度上影响了系统的可维护性.因此,软件优化需要在软件功能,正确性和可维护性间取得平衡,而不应该过分地追求软件的性能.
在进行优化前,必须要明确的已知问题和性能目标,决不可以为了”优化”而”优化”,在动手之前,必须知道自己要干什么? 任何优化都是为了解决具体的软件问题,如果软件以及正常工作,在性能问题没有暴露前,只是凭着主观臆断对某个模块进行性能改善,从软件规范化开发的角度上来说,是非常冒险的.因为修改后的 新代码没有经过完整的测试,软件质量上没有保障.而且,优化收的性能提升幅度可能也不足以让开发者费尽心机.因此,在进行软件优化的时候,必须要进行慎重的评估.
性能优化必须有明确的目标,不要为了优化而优化,如果当前程序没有明显的性能问题,盲目地进行调整,其风险可能远远大于收益.

0 0