`

过早优化是万恶之源(转)

 
阅读更多
Don’t Cut Yourself: Code Optimization as a Double-Edged Sword。中文翻译:过早优化是万恶之源。

代码优化的好处多多,但是这并不意味着所有的代码都需要进行优化,有时过度的优化反而适得其反——费时、费力、不讨好。
“现代计算机科学的鼻祖”Donald Knuth曾说过“过早的优化是万恶之源”,因为:[u][b]让正确的程序更快,要比让快速的程序正确容易得多[/b][/u]。文中讲了7个原则,简单罗列如下:
1.  究竟要优化什么?
2.  选择一个正确的优化指标
3.  优化在刀刃上
4.  优化层次越高越好
5.  不要过早优化
6.  依赖性能分析,而不是直觉
7.  优化不是万金油

更详细的大家可以看英文: http://blog.smartbear.com/programming/dont-cut-yourself-code-optimization-as-a-double-edged-sword/
分享到:
评论

相关推荐

    过早优化代码是万恶之源

    DonaldKnuth说“过早优化是万恶之源”(prematureoptimizationistherootofallevil)。这话也许有些夸张,但“过早优化”的危害我觉得不能忽视。  让正确的程序更快比让快速的程序正确要容易太多,太多。所以,缺省...

    藏经阁-云平台性能优化-七牛-李玮.pdf

    云平台性能优化需要遵循一定的原则,包括过早优化是万恶之源、优化顺序是从高层到底层、谨遵阿姆达尔定律等。同时,云平台性能优化还需要借助监控分析优化体系、监测工具、系统优化举例等技术手段。

    云平台性能优化设计.pptx

    1. **过早优化是万恶之源**:在设计初期,应关注系统的整体架构和模块划分,避免过早地针对某一小部分进行深度优化,这可能导致代码复杂度增加且影响后续维护。 2. **优化顺序是从高层到底层**:首先关注应用程序...

    面向GC的Java编程

    Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都...  过早优化是万恶之源。  但另一方面,什么才是“过早优化”?  If we could do things right for the first time, w

    ActionScript3 性能调整 英文

    ”而Donald Knuth和Tony Hoare进一步强调:“过早优化是万恶之源。”这意味着,在没有明确识别出瓶颈之前,试图进行优化可能会导致不必要的复杂性和维护成本。Rob Pike则提醒我们:“瓶颈往往出现在令人惊讶的地方,...

    浅谈React组件之性能优化

    高德纳: “我们应该忘记忽略很小的性能优化,可以说97%的情况下,过早的优化是万恶之源,而我们应该关心对性能影响最关键的另外3%的代码。” 不要将性能优化的精力浪费在对整体性能提高不大的代码上,而对性能有关键...

    javascript-极速快感

    在编程实践中,存在一个广泛认可的原则,即“过早优化是万恶之源”。这表明,在没有足够理由的情况下过早地对代码进行优化,可能会导致资源浪费和开发效率的降低。程序员应该将精力放在程序的核心部分,即“大岩石”...

    那些害人的编码“神谕”

    那些害人的编码“神谕”.同其它领域一样,计算机科学和工程领域也是群星璀璨,有些耀眼的星光甚至刺得我们...  “过早优化是万恶之源。”这是DonaldKnuth的一句名言。虽然大部分人都不知道,或者会忘掉前面半句:“Wes

    hbase-doc-zh:HBase 中文参考指南

    过早优化是万恶之源。——高德纳 下载 Docker docker pull apachecn0/hbase-doc-zh docker run -tid -p <port>:80 apachecn0/hbase-doc-zh # 访问 http://localhost:{port} 查看文档 PYPI pip install hbase-doc-zh ...

    idea阿里代码规约 v1.0.4

    8. **性能优化**:虽然过早优化是万恶之源,但规约也提出了一些通用的性能优化建议,如避免使用显式类型转换,减少不必要的计算,合理使用缓存等。 通过使用Idea阿里代码规约插件,开发者可以在编码过程中实时获取...

    django-request-profiler:一个非常简单的Django请求分析器

    过早的优化是万恶之源。 有很多非常好的,完整的python和django分析器可用。 它们可以为您提供详细的堆栈跟踪和函数调用时间,输出所有已运行SQL语句,已呈现的模板以及过程中任何/所有变量的状态。 一旦确定合适的...

    java餐饮小程序源码-performance-checklist::chart_increasing:性能优化技术的综合列表,可提高您网站的性能

    “过早的优化是万恶之源”——Donald Knuth • • • :card_file_box: 目录 :hammer_and_wrench: 1.1. 1.1.1. 1.1.2. 1.1.3. 1.1.4. 1.1.5. 1.1.6. 1.1.7. 1.1.8. 1.1.9. 1.2. 1.2.1. 1.2.2. 1.2.3. 1.2.4. 1.2.5. ...

    代码大全(文字版)

    8. **性能优化**:尽管“过早优化是万恶之源”,但了解如何分析和优化性能仍然是必要的。书中讲解了性能瓶颈的识别、基准测试和性能调优的策略。 9. **文档编写**:良好的文档是项目成功的关键。书中介绍了编写API...

    快怒:我在机器学习实验室中需要的代码(R,MatlabOctave),模型和元模型,但没有在货架上找到

    “大约97%的时间,我们应该忘记效率低下的问题:过早的优化是万恶之源。 然而,我们不应该放弃那关键的3%的机会。 一个好的程序员不会因这种推理而沾沾自喜,他应该明智地仔细看待关键代码。 但只有在识别出该...

    计算机程序设计艺术+第1卷:基本算法(第三版)高清中文版

    他还提倡程序员要有严谨的态度,对每一个细节都要有深入的理解和把握,这与他的名言"Premature optimization is the root of all evil"(过早的优化是万恶之源)相呼应。 总的来说,《计算机程序设计艺术》第一卷:...

    meter:Meter-是用于Android(和Java)项目的简单的微基准测试工具。 这不是探查器,这是一个很小的实用工具类,旨在简化基准测试。 而已。 替代Android Jetpack基准测试

    状态 积极开发,始于:2014-07-13 当前状态:处于保留状态... 我们应该忘记效率低下的问题,例如大约97%的时间:过早的优化是万恶之源。 然而,我们不应该放弃那关键的3%的机会。 (C)唐纳德·克努斯(Donald Knu

Global site tag (gtag.js) - Google Analytics