「Thinking Clearly about Performance」阅读笔记

在国内,不知道有多少软件工程师在讨论问题的时候口口声声把性能挂在嘴边,但是到实际设计、编码和运营阶段,却完全将性能抛在了九霄云外。2011年京东促销,网站一度崩溃,东哥直接扔出一句“增加三陪服务器,活动重搞一次”。在引起广大程序员一片欢声笑语的同时,也揭示了天朝在“性能”上普遍存在的问题:并不持续的关注性能,直到出了问题的时候才进行补救。“安全”问题在国内的现状也类似。

缺乏系统性“性能”的关注与对这个概念的认知不清晰不无关系。Cary Millsap主题为Thinking Clearly about Performance的文稿对这一概念驾重就轻,信手拈来,真正做到了深入浅出。其中词汇部分的解释简洁准确,是这个文稿的一大亮点,值得细细品味。

关键点笔记

  1. Performance is an attribute of each individual experience with a system.
  2. 性能只需要关注两个点:吞吐量(throughput)和响应时间(response time)。
  3. 两幅图形象说明什么是性能
    Thouhgput responsetime 1
    Thouhgput responsetime 2
  4. 性能的衡量应该是具体而精确,否则你就是使用了错误的衡量指标。
  5. 序列图理流程,profile看数据,分析系统性能目标是否可行,以及哪些地方是系统的瓶颈。
  6. 把系统最繁忙的资源当做系统瓶颈往往是不可取的。不同的任务/应用,瓶颈也会各不相同。
  7. 明确你的knee在什么位置,据此设计系统容量和在随机访问情况下的knee负载。
  8. 性能优化就是与三座大山死磕:inefficiencies, queueing delays, coherency delays.
  9. 三座大山是永远无法夷为平地的,但是只要持续尝试,会发现越来越多可持续改进的点。
  10. 性能是一个特性,应该从一开始就有所考虑:

The software designer who integrates performance measurement into his product is much more likely to create a fast application and—more importantly —an application that will become faster over time.
—Cary Millsap

–EOF–

版权声明
转载请注明出处,本文原始链接