当您尝试将好的旧C库与花哨的垃圾收集运行时混合时,您需要区分哪些分配由GC不经意的C代码完成,以及哪些分配由您喜欢的GC运行时完成
我是一个老家伙,我记得过去的糟糕时光。我只是简单地重写了malloc,以便从我的虚拟地址空间的下半部分分配,然后制作一个只从我虚拟地址空间的上半部分配的花式GCmalloc。这对于refcount GC很有用。
在某些情况下,您还需要调整内存管理单元正在执行的操作。例如,如果您可以将页面翻转为只读,则可以使用内存管理单元来帮助您强制执行写入障碍,而无需重新编译代码。这对于标记和扫描GC非常有用。
这在Linux / OSX中是否可行?