V8 内存溢出会怎样?

513 阅读1分钟

原文:One small step for Chrome, one giant heap for V8

几年前的 V8 会强制限制网站的内存大小,当应用内存不断增加以至于空间不足时,V8会对内存进行清理和优化,如果深度清理后还是不够用,V8会自动停止运行,也就导致浏览器崩溃(俗称白屏)。注意此时开发人员是无法捕捉到报错信息的,因为V8已经退出你连控制台都打不开。

但是现在已经0202年了,如果谁要说是内存溢出导致页面白屏多半是忽悠人的,还是花心思想办法检查代码是否报错吧。

这里有个 demo,可以模拟内存溢出的场景。运行之后可以看到,内存溢出后浏览器并没有崩溃,而是给出了一个警告,大意是“在内存即将崩溃前给你一个debug的机会”。如下图所示:

点击继续的话内存会继续增加,这个时候浏览器才会崩溃掉。