V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

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

  •  
  •   demo · 344 天前 · 4141 次点击
    这是一个创建于 344 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先我在这里,删除了代码里的 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
        1
    chairuosen   344 天前
    没听到 mac 起飞的声音?
        2
    bzw875   344 天前   ♥ 1
    如果经常写出死循环,就断点调试咯,免得浏览器死掉
        3
    wq2016   344 天前
    @bzw875 说得对~
        4
    demo   344 天前
    @chairuosen 没有听见 QwQ
    @bzw875 今天脑抽了
        5
    zhouyg   344 天前
    我偶尔也写个死循环,赶紧把 chrome 进程干掉就好了。没大碍
        6
    deadEgg   344 天前
    原来 fir 也是这么玩死我机子的
    上传个包,发现电脑死了.
    联系客服,客服表示是 bug,不修

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

    rm -rf /

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

    考虑到我是 Windows 可能内存管理机制不太一样所以没问题吧
        15
    des   343 天前
    while(true){};
    也没死啊, 不知道你什么情况
        16
    decaywood   343 天前
    command + q
        17
    bp0   343 天前
    @des 应该是 @demo 死循环中的 //其他代码 搞的鬼。只要有点动态创建的东西,就会慢慢把内存占满的。不然一个死循环顶多把 CPU 占满的,不至于整个系统都挂掉的。
        18
    Neveroldmilk   343 天前
    基本常识,三个空的 for 循环是自杀的最快道路。
        19
    zonghua   343 天前
    我也写过一个死循环,是一个 timeout 函数。
        20
    vibbow   343 天前
    #论 32 位浏览器的优势
        21
    jsoh   343 天前
    我也手贱了,不过只有当前窗口死掉了!
        22
    Haku   343 天前
    chrome 的内存占用简直让人无语, 8g 内存经常被吃到只剩 2g ,连个 dota2 和 Chrome 同开都会卡
        23
    haoxiaolei   343 天前
    冬天天冷时候经常这么干。
        24
    Vonex   343 天前
    不能强退吗
        25
    flowfire   343 天前
    @Vonex 占满内存和 cpu 没法强退
        26
    flowfire   343 天前
    @kookxiang 时间过长提示是否结束的是火狐。。。。 chrome 没有
        27
    TakanashiAzusa   343 天前
    windows 下可以停止当前进程,不至于全死了。。但是不知道 mac 什么情况。。
        28
    wweir   343 天前
    @xidianlz 新一点系统,这命令已经没什么危险性了,要加一个挺长的参数跳过安全模式才让执行
        29
    hst001   343 天前
    @Haku 我也经常同开,但是不会卡
        30
    reverland   343 天前
    firefox 有长时间无响应提醒,但并不代表就不会过热关机。。
        31
    Lpl   343 天前
    @xidianlz 哈哈,那天手贱的把公司服务器 var/lib 目录给 rm -rf 了。。。运维说你咋不直接在根目录下执行
        32
    Khlieb   343 天前 via Android
    玩脱了
        33
    allenx   343 天前
    楼主是单核机器?
        34
    xidianlz   342 天前
    @wweir 这样 f 参数岂不是表示没用了
    @Lpl rm 之前看一看啊 之前删过自己机器上的用户目录,从此 rm 被 alias 成了 mv
        35
    wweir   342 天前
    @xidianlz f 针对这条命令,确实没用了
        36
    xidianlz   342 天前
    @wweir
    f : 没想到你是这样的 rm ,你让我 f 的脸往哪放
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1617 人在线   最高记录 2447   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 53ms · UTC 12:13 · PVG 20:13 · LAX 04:13 · JFK 07:13
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1