读《A Philosophy of Software Design》——(20)
🤔☕️🤔☕️🤔
读《A Philosophy of Software Design》——(20)Designing for Performance
📖:性能来自简单,而且系统会因简单而更快,并非因为快而高性能。
🤔:性能,设计出来,还是优化出来,这是个问题。没经验时,先跑起来再说,其它只能预估。有经验时,预先会判断那些点,可能会是瓶颈点,如何度量那些点的余量,到跑起来后,盯着实际的数据,比对理论预估。当然,还会有黑天鹅出现,也就是认知之外的瓶颈,这就会成为下一个迭代的预估瓶颈点。从只会看 CPU 使用率,到关注每个模块的 IPC,这是调试了多少次优化,才积累下来的经验。可是,看到这些还不屑一顾,典型属于没有切身的优化体感。
🤔:另一方面,不得不补充的是,优化是否需要很多知识。传统的观点回答“是”,对于这点,我有不同的想法。个人经验发现,优化最关键的是找硬件的边界,也就是完成一个功能的全过程,到底要用到哪些硬件,每个硬件点的最大能力,或则叫最大性能到底是多少。那么优化就是在逼近硬件能力的最大发挥。所以从问题点,直接摸到硬件边界,跳过中间所有的东西,更能够推进优化。否则,很容易被中间的各种实现困扰,不搞明白好像前进不了,可是搞明白也不是简单的事情,需要非常多的额外领域知识,才能明白这些软件到底在干嘛。
🤔:性能,我更喜欢用另一个词,叫作匹配。做一件事情的时候,沿途的硬件刚刚好匹配的时候,就是性能的极致时刻,没有任何一点浪费。而任何一个硬件点不匹配,就会成为瓶颈点,也就是性能卡脖子的地方,其它所有地方的闲余都会成为浪费。
—— By 术子米德 @2022.04.07
版权声明: 本文为 InfoQ 作者【术子米德】的原创文章。
原文链接:【http://xie.infoq.cn/article/b34099daa93ac8a451a5e6467】。文章转载请联系作者。
评论