刚刚写 JS 循环傻逼了,把 Chrome 玩死,内存吃满,只能关机重启 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
demo
V2EX    Javascript

刚刚写 JS 循环傻逼了,把 Chrome 玩死,内存吃满,只能关机重启

  •  
  •   demo 2016-03-14 15:31:45 +08:00 11377 次点击
    这是一个创建于 3533 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先我在这里,删除了代码里的 i++;

    http://www.w3school.com.cn/tiy/t.asp?f=js_loop_for_cars

    然后我调试自己的代码,直接 for (;i < _el.length;) { //其他代码 } ,也没有写 i++;, 然后就切换回编辑器继续写。

    过了一会我发现 iStat MEM 条快满了,我没在意,我想可能是程序开太多了吧。

    等我把 JS 代码写的差不多继续 Chrome 调试的时候。

    咦!鼠标怎么不动了!
    咦!!鼠标怎么变菊花了!!

    36 条回复    2016-03-16 11:15:20 +08:00
    chairuosen
        1
    chairuosen  
       2016-03-14 15:37:42 +08:00
    没听到 mac 起飞的声音?
    bzw875
        2
    bzw875  
       2016-03-14 15:40:22 +08:00   1
    如果经常写出死循环,就断点调试咯,免得浏览器死掉
    wq2016
        3
    wq2016  
       2016-03-14 15:41:57 +08:00
    @bzw875 说得对~
    demo
        4
    demo  
    OP
       2016-03-14 15:49:14 +08:00
    @chairuosen 没有听见 QwQ
    @bzw875 今天脑抽了
    zhouyg
        5
    zhouyg  
       2016-03-14 15:50:48 +08:00
    我偶尔也写个死循环,赶紧把 chrome 进程干掉就好了。没大碍
    deadEgg
        6
    deadEgg  
       2016-03-14 15:51:07 +08:00
    原来 fir 也是这么玩死我机子的
    上传个包,发现电脑死了.
    联系客服,客服表示是 bug,不修

    从此 fir 一生黑
    kookxiang
        7
    kookxiang  
       2016-03-14 15:57:59 +08:00
    Chrome 运行 15 秒(也有可能是 30 秒,不记得了)左右会自动提示代码执行时间过长,是否终止的
    demo
        8
    demo  
    OP
       2016-03-14 16:00:06 +08:00
    @kookxiang 没有任何提示...
    domty
        9
    domty  
       2016-03-14 16:01:59 +08:00
    我以前也干过,貌似你把 chrome 进程杀掉就可以了。
    js 好像是单线程操作的,这种循环基本上整张网页就啥都不干了。
    xidianlz
        10
    xidianlz  
       2016-03-14 16:11:50 +08:00
    写写死循环没什么 执行了

    rm -rf /

    这个伟大的命令就开心了
    kirisetsz
        11
    kirisetsz  
       2016-03-14 18:45:47 +08:00 via Android
    @kookxiang Firefox 有… chrome 有没有呢?不记得了嘿嘿
    jerray
        12
    jerray  
       2016-03-14 19:23:57 +08:00
    V8 不是有内存上限来着么
    demo
        13
    demo  
    OP
       2016-03-14 19:41:43 +08:00 via iPhone
    @domty 鼠标键盘全挂了
    maplerecall
        14
    maplerecall  
       2016-03-14 20:02:44 +08:00
    之前 Chrome 控制台不小心写了个死循环没注意就放后台没管,放了一小时除了 CPU 风扇声音比较大没有任何问题…不过最后也只能直接杀将进程,整个控制台都未响应了…

    考虑到我是 Windows 可能内存管理机制不太一样所以没问题吧
    des
        15
    des  
       2016-03-14 21:17:11 +08:00
    while(true){};
    也没死啊, 不知道你什么情况
    decaywood
        16
    decaywood  
       2016-03-14 21:23:04 +08:00
    command + q
    bp0
        17
    bp0  
       2016-03-14 21:39:09 +08:00
    @des 应该是 @demo 死循环中的 //其他代码 搞的鬼。只要有点动态创建的东西,就会慢慢把内存占满的。不然一个死循环顶多把 CPU 占满的,不至于整个系统都挂掉的。
    Neveroldmilk
        18
    Neveroldmilk  
       2016-03-14 22:46:34 +08:00
    基本常识,三个空的 for 循环是自杀的最快道路。
    zonghua
        19
    zonghua  
       2016-03-15 00:12:37 +08:00
    我也写过一个死循环,是一个 timeout 函数。
    vibbow
        20
    vibbow  
       2016-03-15 02:03:00 +08:00
    #论 32 位浏览器的优势
    jsoh
        21
    jsoh  
       2016-03-15 09:33:42 +08:00
    我也手贱了,不过只有当前窗口死掉了!
    Haku
        22
    Haku  
       2016-03-15 09:45:20 +08:00
    chrome 的内存占用简直让人无语, 8g 内存经常被吃到只剩 2g ,连个 dota2 和 Chrome 同开都会卡
    haoxiaolei
        23
    haoxiaolei  
       2016-03-15 09:53:01 +08:00
    冬天天冷时候经常这么干。
    Vonex
        24
    Vonex  
       2016-03-15 10:15:14 +08:00
    不能强退吗
    flowfire
        25
    flowfire  
       2016-03-15 10:24:55 +08:00
    @Vonex 占满内存和 cpu 没法强退
    flowfire
        26
    flowfire  
       2016-03-15 10:25:17 +08:00
    @kookxiang 时间过长提示是否结束的是火狐。。。。 chrome 没有
    TakanashiAzusa
        27
    TakanashiAzusa  
       2016-03-15 10:31:59 +08:00
    windows 下可以停止当前进程,不至于全死了。。但是不知道 mac 什么情况。。
    wweir
        28
    wweir  
       2016-03-15 12:24:38 +08:00
    @xidianlz 新一点系统,这命令已经没什么危险性了,要加一个挺长的参数跳过安全模式才让执行
    hst001
        29
    hst001  
       2016-03-15 13:12:33 +08:00
    @Haku 我也经常同开,但是不会卡
    reverland
        30
    reverland  
       2016-03-15 16:17:46 +08:00
    firefox 有长时间无响应提醒,但并不代表就不会过热关机。。
    Lpl
        31
    Lpl  
       2016-03-15 18:54:22 +08:00
    @xidianlz 哈哈,那天手贱的把公司服务器 var/lib 目录给 rm -rf 了。。。运维说你咋不直接在根目录下执行
    Khlieb
        32
    Khlieb  
       2016-03-15 19:05:44 +08:00 via Android
    玩脱了
    allenx
        33
    allenx  
       2016-03-15 19:14:26 +08:00
    楼主是单核机器?
    xidianlz
        34
    xidianlz  
       2016-03-16 10:09:55 +08:00
    @wweir 这样 f 参数岂不是表示没用了
    @Lpl rm 之前看一看啊 之前删过自己机器上的用户目录,从此 rm 被 alias 成了 mv
    wweir
        35
    wweir  
       2016-03-16 10:54:41 +08:00
    @xidianlz f 针对这条命令,确实没用了
    xidianlz
        36
    xidianlz  
       2016-03-16 11:15:20 +08:00
    @wweir
    f : 没想到你是这样的 rm ,你让我 f 的脸往哪放
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2479 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 89ms UTC 10:28 PVG 18:28 LAX 02:28 JFK 05:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86