美文网首页
js缓存加快运行速度

js缓存加快运行速度

作者: 十三流 | 来源:发表于2017-03-08 12:09 被阅读0次

今天在做一个树形结构计算时使用了递归,使用js计算,树一旦比较大了,页面经常卡顿,后来调试发现问题出在递归函数上,后来给每个叶节点加了计算缓存才算解决了问题。
为了弄明白究竟慢在哪里,自己做了个实验,以简单的斐波那契数列为例,先定义一个简单函数

f=function(n){
    return n<2?n:f(n-1)+f(n-2);
}

再定义一个时间计算函数

time=function(func){
    function dofunc(n){
        var t1=new Date();
        var r=func(n);
        var t2=new Date();
        console.log((t2-t1)+'ms');
        return r;
    }
    return dofunc
}

好了现在看看运行时间

命令 ftime=time(f) 结果 时间
ftime(30) 832040 1369ms
ftime(31) 1346269 2199ms
ftime(32) 2178309 3533ms
ftime(33) 3524578 5884ms

再往上去,我这电脑已经扛不住了,居然只能算到30左右。。。
如果加个缓存试试呢

重新定义一个带缓存的ff函数

ff=function(){
    mem=[0,1];
    function f(n){
        var r=mem[n];
        if(typeof(r)!='undefined'){
            return r;
        }else{
            mem[n]=f(n-2)+f(n-1)
            return mem[n];
        }
    }
    return f
}()

再来看看运行时间

命令 ftime=time(ff) 结果 时间
fftime(30) 832040 0ms
fftime(300) 2.2223224462942035e+62 1ms
fftime(1000) 4.346655768693743e+208 1ms
fftime(3000) Infinity 2ms

太出乎我的意料了,也难怪那些大公司都对算法是有要求的...

PS:后来想用快一点的语言会不会好些,于是用python测试了一下性能,发现也就是比js快个3、4倍的样子,不过遇到这样指数级的问题,光靠语言间的快慢是无法解决的,C/C++大拿不要嘲笑,我确实不会。。。

相关文章

  • js缓存加快运行速度

    今天在做一个树形结构计算时使用了递归,使用js计算,树一旦比较大了,页面经常卡顿,后来调试发现问题出在递归函数上,...

  • 大型项目优化的方向

    代码优化 ①开启opcode缓存,减少额外CPU和内存开销,加快代码运行速度(见文档《Opcode缓存》)②重模型...

  • 如何让前端强制从服务器拉取最新资源(html、css、js、图像

    为了加快浏览器访问速度,降低服务器压力,浏览器一般自动缓存html页面、 图片、Js及css文件,如需改变这种缓存...

  • 大型项目优化的方向

    大型项目优化的方向 **代码优化 ** ​ 开启opcode缓存,减少额外CPU和内存开销,加快代码运行速度 ...

  • 无标题文章

    2018.12.22 前端开发规范: JS部分: 目的: 1、尽可能逻辑简化,加快运行速度 2、保持代码的整洁...

  • 2021-04-29 用squid搭个代理,上网更安全

    为什么用代理 流量控制, 提高安全性 缓存,加快速度 安装步骤 下载最新squid Windows版本 双击运行,...

  • HTTP缓存

    1 缓存分类 a. 强缓存;b. 协商缓存; 2 缓存作用 a. 可以加快资源获取速度,提升用户体验,减少...

  • 网站的优化思路

    一、代码优化 开启opcode缓存,减少额外CPU和内存开销,加快代码运行速度尽量使用单引号替换双引号重模型轻控制...

  • 优化webview的想法

    设置缓存。开启app&dom&database多种缓存 使用http/2。http/2有新特性可以加快加载速度。多...

  • 对WKWebView中的图片做缓存

    为了对网页中的图片做缓存加快运行速度,百度到这么一个抽象类NSURLProtocol可以监听所有请求。 上代码,新...

网友评论

      本文标题:js缓存加快运行速度

      本文链接:https://www.haomeiwen.com/subject/akkbgttx.html