延迟垃圾回收?

5
我正在使用 Chrome(我的 Mac 上的开发版本)。
我查看了页面加载时间线,并发现由于加载页面时进行了一些垃圾回收,导致了 150ms 的延迟。
这是黄色线。
我很好奇是否有任何方法可以停止它、延迟它或者以其他方式让页面加载更快?

1/ 如果您在问题中标记了Chrome开发的任何语言,将有助于其他人回答您。2/ 一般来说,垃圾回收已经尽可能地延迟触发,因此您只能自愿提前触发它,而不能推迟它(除非您愿意增加堆大小)。 - Pascal Cuoq
我相信它是用C++编写的。 - GeoffreyF67
GC是否总是在加载页面时触发?这是哪个版本的Chrome? - Yuji
2个回答

3

与一些评论所反对的观点不同,这并不是一个C++问题。

垃圾回收发生在v8中(chrome中的javascript引擎),当该引擎检测到应该开始释放代码中不再需要的对象所占用的内存时。您可以访问v8页面了解有关垃圾回收器的更多信息。

您的代码可能会提前进行垃圾收集,原因可能很多,对此我们需要查看您的代码。您在页面加载时是否有许多变量超出范围?


-3
不要创建太多垃圾:查看你的JavaScript程序在加载期间分配内存的位置,并尝试通过重用数据结构或延迟工作直到页面加载完成来消除垃圾收集。这样可以让你“延迟”垃圾收集。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接