每天听简报,了解最新科技、AI、软件资讯
谷歌给渲染引擎里的C++代码装了一套垃圾回收器,叫Oilpan。浏览器页面对象多用C++写成,JavaScript又要不断引用它们,两边对象缠成一团。只靠引用计数,一旦出现循环引用,内存就会泄漏或留下悬空指针。Oilpan把清扫阶段挪到后台线程并发处理,主线程只跑析构函数。谷歌用真实数据测算,主线程清扫内存的耗时平均降了百分之四十二,最多能到一半。评论区有人反对,觉得C++靠智能指针管住所有权就够了,垃圾回收是多背一层运行时。但也有反驳,C++对象一旦和JavaScript对象互相持有引用,智能指针挡不住这种循环引用的坑。
进度保存在本设备 · 登录同步