软讯网络 > 编程语言 > C/C++ > 编程交流与学习--More Effective C++的学习-Item M18:分期摊还期望的计算
【标 题】:编程交流与学习--More Effective C++的学习-Item M18:分期摊还期望的计算
【关键字】:
--More,Effective,C++,-Item,M18
【来 源】:http://blog.csdn.net/swordll80/archive/2006/10/22/1345732.aspx
编程交流与学习--More Effective C++的学习-Item M18:分期摊还期望的计算
over-eager evaluation(过度热情计算法):在要求你做某些事情以前就完成它们。
隐藏在over-eager evaluation后面的思想是如果你认为一个计算需要频繁进行,你就可以设计一个数据结构高效地处理这些计算需求,这样可以降低每次计算需求时的开销。
采用over-eager最简单的方法就是caching(缓存)那些已经被计算出来而以后还有可能需要的值。
在本条款中我提出的建议,即通过over-eager方法分摊预期计算的开销,例如caching和prefething,这并不与我在条款M17中提出的有关lazy evaluation的建议相矛盾。当你必须支持某些操作而不总需要其结果时,lazy evaluation是在这种时候使用的用以提高程序效率的技术。当你必须支持某些操作而其结果几乎总是被需要或被不止一次地需要时,over-eager是在这种时候使用的用以提高程序效率的一种技术。它们所产生的巨大的性能提高证明在这方面花些精力是值得的。