程序优化的三个级别.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序优化的三个级别 程序优化的三个级别 HouSisong@GMail.co m m 2004.11.07 整理 tag:代码优化,程序优化,综级优化,代码调整,新的视角,表驱动状态机 文章来源于 文章来源于 abp 论坛中的一篇帖 子 子 :/viewtopic.php?t=1063 (原文章写于 2003.10.14 晚) 到了 到了 allaboutprogram 后被人叫做性能狂人,我也不知道为什么会有这个称号,其实 我并不是一个偏激的人,相反我很随和,平易近人 我并不是一个偏激的人,相反我很随和,平易近人...(哈哈)。为了与新的身份大致相符, 所以尝试写篇文章,写写自己理解的优化的三个级别。 程序速度,我想大多数程序员可能都想使自己写的程序能够比别人写的程序运行得更快;有人不谈优化,甚至憎恶优化,我只能说那只是因为他没有能力做到!那是他还不能按时写出程序、不能写出正确的程序、不能写出规范的程序。很多优秀的程序员都喜欢追求最快的 程序速度,我想大多数程序员可能都想使自己写的程序能够比别人写的程序运行得更快; 优化前需要问自己的几个问题:为什么要优化 、优化的目标是什么、哪些部分才需要优化、 优化前需要问自己的几个问题:为什么要优化 、优化的目标是什么、哪些部分才需要优化、 能够接受由此带来的可能的资源消耗(人力、维护、空间等)吗? 程序优化有三个层级;它们依次产生更显著的优化代码,在考虑优化方案时可以尝试从不同的层级着手思考优化的方案: 程序优化有三个层级;它们依次产生更显著的优化代码,在考虑优化方案时可以尝试从不同 的层级着手思考优化的方案: 具体是不是产生更显著的优化效果也不是确信的)(也许有人表达过这些观点了,但这也是我对优化的实际理解 ;我的分类方法主要依据了具体去实现一个优化时思考问题的切入角度来划分的,有时候他们之间的界限也并不明显, 具体是不是产生更显著的优化效果也不是确信的) 第一级:代码调整代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 第一级:代码调整 代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:语句调整,用汇编重写、指令调整、换一种语言实现、换一个编译器、循环展开、参 用汇编重写并不是简单把高级语言改写为汇编实现,那样写的汇编很可能没有当今的编译器数传递优化等都属于这一级; 用汇编重写并不是简单把高级语言改写为汇编实现,那样写的汇编很可能没有当今的编译器 数传递优化等都属于这一级; 这个级别的优化需要掌握大量的小的优化技巧和知识,需要不断的积累; 这个级别的优化需要掌握大量的小的优化技巧和知识,需要不断的积累; 简单的语句调整、公共表达式提取、废代码删除等当前的很多编译器也能做到了,但也需要了解一些编译器的优化能力使自己的代码配合编译器做好优化; 产生的代码好,所以如果决定用汇编实现,那就应该按照汇编的角度来规划自己的实现,适 产生的代码好,所以如果决定用汇编实现,那就应该按照汇编的角度来规划自己的实现,适 当的参考编译器生成的汇编码也是可取的 当的参考编译器生成的汇编码也是可取的(特别是新手,我也一样);在某些领域,使用 CPU 的新特性和新的指令集等将产生巨大的性能收益,这些地方经常采用汇编来实现。 第二级:新的视角 快排的选择问题是这一级早就应该完成的)很多经典算法都对问题作了一些假设(包括我们新的视角强调的重点是针对问题的算法;即选择和构造适合于问题的算法;( 快排的选择问题是这一级早就应该完成的)很多经典算法都对问题作了一些假设(包括我们 当前已经完成的算法实现 当前已经完成的算法实现),而在面对实际问题时“新的视角”提示我们应该重新检视这些假 设,并尝试不同的思考问题的角度,寻求适合于问题的新算法; 破一些规则,发掘和怀疑自己的某些假定,恢复问题的本来面目;发掘问题的本来意义,从不同的角度思考面对的问题,使用适合于问题的的算法; 尝试打 破一些规则,发掘和怀疑自己的某些假定,恢复问题的本来面目; 第三级:表驱动状态机 第三级:表驱动状态机 活动都可以看作是他的投影);这一级一般可以产生无与伦比的快速程序,着;除此之外 have nothing; 既:把解决一个问题的算法看作一个机器,它有一些可变将问题抽象为另一种等价的数学模型或假想机器模型,比如构造出某种表驱动状态机;这一级其实是第二级的延伸,只是产生的效果更加明显,但它有其本身的特点( 活动都可以看作是他的投影);这一级一般可以产生无与伦比的快速程序, 着;除此之外 have nothing; 既:把解决一个问题的算法看作一个机器,它有一些可变 要达到这一级需要大量修炼的 要达到这一级需要大量修炼的;并且思考时必须放弃很多已有的概念

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档