如何进行程序优化

如何进行程序优化

ID:6039775

大小:210.50 KB

页数:8页

时间:2017-12-31

如何进行程序优化_第1页
如何进行程序优化_第2页
如何进行程序优化_第3页
如何进行程序优化_第4页
如何进行程序优化_第5页
资源描述:

《如何进行程序优化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、作者名等:题目7如何进行程序优化葛志春1+福建省毕业生就业公共网研发服务中心福建省福州市福建人才大厦12F350001摘要:软件的性能问题常常是软件工作者关注的主题,但究竟要如何优化程序使软件系统的性能达到要求却一直以来没有一个系统的解决方案。本文作者从实际经验出发通过如何优化CPU处理时间、RAM、I/O操作、共享软件资源、数据库操作等方面系统的介绍了如何优化运用程序,提升系统运行效率的基本方法。最后还介绍了提高代码质量的一些方法。关键词:性能共享资源数据库1引言运用程序的性能的问题是最让我们的软件工作者头疼的问题,特别是大型网站的性能问题。我们的软件工作者们常常

2、发现新系统上线后巨慢或者频繁崩溃,但却不知道问题出自那里?!新系统无法正常运行的“可能的问题很多”:可能是硬件的配置问题,可能是网络带宽的问题,可能是防火墙配置的问题,可能是操作系统的问题,可能是数据库的配置问题,可能是Web中间件配置的问题,可能是程序代码的问题,可能是。。。。。。有很多的“可能”,但最有“可能”的却都是来自运行程序代码质量的问题。程序代码的质量的问题是软件系统无法正常运行的主要问题,而代码的“低效性”则是影响系统性能的最核心问题。如何进行程序优化,提高程序代码的质量与运行效率?这个问题是一直困扰我们软件工作者的问题。作者分析众多软件代码后,认为编

3、写优质高效的运行程序还需要从以下方面下手:2处理好共享资源软件系统在运行时需要占用各种资源,包括硬件资源和软件资源。硬件资源应该主要考虑CPU的处理时间、线程使用、RAM、I/O、网络等资源。软件资源目前主要突出的是:数据库连接、共享对象等资源。2.1共享硬件资源2.1.1CPU处理时间CPU处理时间资源是最宝贵的资源,在程序编写时我们要时时注意“节约”这一宝贵资源;尽量让CPU少做事,或者不做事;让CPU做的每一件事都是“不得不做的事”。请记住“小葛公理之一”:“最快做完事情的方法就是尽量不做事,什么都不做是最快的”。在分析系统代码时,我发现我们系统慢的一个重要原

4、因是:我们的程序走了很多的“冤枉路”,我们的CPU做了很多“无聊的事情”。这主要体现在以下几个方面:1、系统中垃圾代码过多,不简洁;导致CPU做了很多无用功;2、程序算法不合理,比如循环次数过多,随意使用递归等;3、可以用一条语句实现的,用了多条语句才达到相同的目的;4、不该放在循环体内部的,放在循环体内部做循环;5、不该调用递归算法的,调用递归算法;6、可以选择执行的代码,却每次都让它执行等。作者名等:题目7其实对于以上问题的解决没有什么难度。问题的解决在于能否用心去做每件事,能否认真对待、分析所写的每一行代码。“小葛公里之二”:“技术含量的高低在于技术人员的细心

5、程度”。在程序界有一个至理名言:“程序的编写很简单,关键看您会不会拷贝、粘贴”。我们程序员在编写代码时“很会”拷贝;但“粘贴”的技术却不行,粘的整个系统的“垃圾代码成灾”,让我们的CPU做了大量的无用功。因此,大家在编写代码时必须时刻注意:您所编写的或者拷贝的每一行代码确实为业务所需,是完成系统功能所“不得不做”的;如果不是必须严格“斩除”。算法是否合理、是否高效,对于“软件蓝领”来说可算是高难度的问题;但对于以下几个问题来说就看用心不用心的问题了。只要您细心点,您会发现下面提到的方法其实真的很简单。1、将不需要在循环中执行的语句尽量放在循环体之外。2、应该发在IF

6、…Else…语句中的语句,必须发在IF…Else..语句中,因为系统有可能执行不到。3、尽量让占用CPU、RAM资源较多的方法、语句后面执行,同样因为系统有可能执行不到,比如将数据库查询、文件读写等方法移到“万不得已”时才执行。在代码编写时将参数检查等轻量级代码放前面,越重量级的代码放在越后面。这样如果执行前面轻量级代码时执行到了return语句,后面重量级代码就可不执行了。4、能不用循环、递归的尽量不要用循环、递归,即使用了也要想办法缩短循环、递归次数。5、能将多条语句并成一条,又不影响程序清晰性的合并成一条,比如可以将声明语句和赋值语句合并。6、在不影响程序清晰

7、性的情况下,能不声明的变量尽量不要声明,如可采用:代码段1:{session.setAttribute("list",api.findRealDemanList(year,demandStatus));}7、在声明指针变量时,尽量不赋值。如代码段3:{ListVolist=newvector();VOlist=api.findRealDemanList(year,demandStatus);}其实第一句中newVector()对象根本没用,这样不但让费了newVector()的漫长cpu时间,而且还让费了堆栈空间。8、尽量避免递归或循环调用SQL语句或者其它较占

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。