javascript
关于《高性能JavaScript》制表(Memoization)笔记
減少工作量是最好的性能優(yōu)化技術。代碼所做的事情越少,他的速度就越快。
書中在關于用制表優(yōu)化遞歸的下一段代碼中,存在問題。
function memfactorial(n){
??? if (!memfactorial.cache){
? ?? ?? memfactorial.cache = {
??? ? ?? ?? "0": 1,
??????????? "1": 1
??????? };
??? }
??? if (!memfactorial.cache.hasOwnProperty(n)){
??????? memfactorial.cache[n] = n * memfactorial (n-1);
??? }
??? return memfactorial.cache[n];
}
下劃線部分這種寫法并沒有真正解決遞歸的問題。當首次n過大時,本質上依然是一個遞歸。
只適用于從小到大的逐步調用。
例如:
// 堆棧溢出
alert(memfactorial(4375));
// 正常
alert(memfactorial(3750) + memfactorial(4375));
轉載于:https://www.cnblogs.com/testudy/archive/2011/04/02/2003164.html
總結
以上是生活随笔為你收集整理的关于《高性能JavaScript》制表(Memoization)笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据思维的十大核心原理
- 下一篇: 创建自己的uboot-基于IMX6