知识卡片

负载可以转移

普通读书笔记卡 · 1709.a

内容

懒计算把当前操作的成本推迟到真正需要结果时再支付,例如连接时不均分水量,读取时再更新。发散:延迟不是省掉成本,而是把成本放到更合适的时刻,适合读写比例明确的场景。

参考来源

- 位置:《你真的会写代码吗-2021》第3章《速度的要求:时间效率》"3.2 常数时间内进行水量查询(Speed2)"一节(源文件:_epub-src/OEBPS/Text/0013.xhtml) - 结论依据:原文明确"可以把更新操作推迟到下一次调用getAmount的时候。这种方式是程序员经常使用的一个标准技巧,称为懒计算或延迟计算……懒计算是指将计算推迟到真正需要的时候再进行",并指出代价最终仍需在getAmount时支付。 - 原始内容:为了让connectTo方法以常数时间运行,它不会以任何方式更新水量。毕竟,只有在调用getAmount方法时,水量才是可见的。因此,可以把更新操作推迟到下一次调用getAmount的时候……懒计算是指将计算推迟到真正需要的时候再进行……迟早还是会调用getAmount方法,将不得不为所有的延迟付出代价。