SuperAPI AI 工具集

javascriptcore-garbage-collector

通用与其它

查看项目

更新于 10-16 03:14

技能介绍

用途:这是 Bun 中 JavaScriptCore 垃圾回收器(Riptide)的参考文档,面向需要排查或编写 GC 相关代码的开发者,典型场景包括 use-after-free、JS 对象泄漏、对象被过早回收,以及修改 WriteBarrier、visitChildren 等。

主要能力:介绍 Riptide 的五个特性——非移动、分代、并行、大部分并发、栈上保守扫描;说明 Eden GC 与 Full GC 两种模式、并发标记与 safepoint;解释根集合通过 Heap::addMarkingConstraint() 注册的标记约束(Cs、Msr、Sh、D、Ws、O、Jw、Cb)及 Bun 额外的 DOMGCOutputConstraint;描述 JSCell 8 字节头、CellState 与写屏障、MarkedBlock/PreciseAllocation/IsoSubspace 分配布局;讲解保守栈扫描与 EnsureStillAliveScope、visitChildren 规则、visitAdditionalChildren 与输出约束、opaque roots、JSC::Weak/WeakImpl/WeakBlock/WeakHandleOwner、JSRef 的强/弱/终结三态、gcProtect 的局限、reportExtraMemoryAllocated/reportExtraMemoryVisited 的额外内存上报,以及 HeapAnalyzer 堆快照。

使用方式:资料给出的是概念与代码模式,未提供安装命令或独立运行步骤;相关代码位于 vendor/WebKit/Source/JavaScriptCore/heap/ 与 Bun 的 src/jsc/ 等路径。

适用场景:Bun 原生绑定、包装类、事件监听、WebSocket/数据库连接等需要正确管理 JS 对象生命周期的开发与调试。

限制:资料未说明收费、价格、平台或效果;部分内容(如 analyzeHeap 示例)在原文中被截断,暂未提供完整信息。