星空网 > 软件开发 > Java

缓存在网站开发中的重要性

通过计算斐波那契数列明白缓存在网站开发中的重要性
1 、首先测试一下没有使用数据缓存来计算斐波那契数列。

var count = 0;
function fib(n) {
count++;
if(n === 0 || n === 1) {
return 1;
}

return fib(n - 1) + fib(n - 2);
}
fib(40);
console.log(count);//count是函数fib运算次数,当fib(40)时候运行次数高达:331160281次,感兴趣的可以检测一下。
2、下面我们看看使用数据缓存来计算斐波那契数列。

// 缓存是怎么使用的?
// 一般的缓存结构就是:键值对(对象 或者 数组)
// var obj = {};
// var arr = [];
// 使用缓存的方式:
// 1 先去缓存中查找有没有键对应的数据
// 2 如果有,就直接拿过来使用
// 3 如果没有,就计算或者是查询到,然后,要放到缓存中!
// 4 以后,就通过缓存来去数据
// 简化的步骤:先去缓存中查询有没有,如果没有就计算,并将结果放到缓存中
// 问题:缓存放到什么位置去??
// 如果是全局变量,此时,任何人都能修改全局变量的内容
// 那就造成:数据不准确
// var obj = {};

// 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89....
var count = 0;
var fib = (function() {
// 使用闭包,将缓存放到闭包中去,
// 此时,就对这个缓存起到了保护的作用
// var cache = {};
var cache = [];

// 这个函数使用来计算:斐波那契数列
return function(n) {
count++;
// 1 先去缓存中查找有没有该键对象的值
if(cache[n] !== undefined) {
// 2 如果有,就直接返回当前的值
return cache[n];
}

// 3 如果没有,就计算,然后要添加到缓存中去
if(n === 0 || n === 1) {
// return 1;
cache[n] = 1;
return cache[n];
}

var temp = arguments.callee(n - 1) + arguments.callee(n - 2);
// 放到缓存中去
cache[n] = temp;
return cache[n];
};
})();

fib(40);

console.log(count);// 计算次数为:79次。
通过上面两次对比,瞬间觉得数据缓存的重要性,由331160281次下降到79次。感兴趣的屌丝可以测试一下fib(50);的运行次数,不使用数据缓存我测试了,我的浏览器崩溃了,使用数据缓存运行才99次。




原标题:缓存在网站开发中的重要性

关键词:缓存

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

给外贸客户寄样品的几个妙招,你学会了吗?:https://www.ikjzd.com/articles/139309
2018年12月亚马逊美国站烧烤架清洁刷(Grill Brushes)数据报告:https://www.ikjzd.com/articles/13931
外贸新手常见问题盘点,你都遇到过吗?:https://www.ikjzd.com/articles/139310
面对易碎品保函,外贸人应如何处理:https://www.ikjzd.com/articles/139311
每日资讯: 亚马逊2020假日季爆卖15万亿件商品!贝索斯净资产突破2000亿美元!:https://www.ikjzd.com/articles/139312
英国退欧,关于UKCA认证你了解多少?:https://www.ikjzd.com/articles/139313
长治婚庆女司仪和主持人:https://www.vstour.cn/a/366176.html
北京丰台区水上乐园哪家好玩?:https://www.vstour.cn/a/366177.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流