|
|
1
6
LLVM docs say that it does not support multi-threaded collectors 然而 .
文档确实指出,要进行多线程垃圾收集,您需要阻止世界,这是一个不可移植的东西:
然而,线程之间的共享状态是一个棘手的扩展问题。如果您的语言仅通过“任务”之间的消息传递进行通信,因此在工作线程之间没有共享状态,那么您可以使用每线程收集器作为每线程堆吗? |
|
|
2
5
给出的引文是关于LLVM对GC的内在支持,其中用C++代码扩充LLVM,告诉它如何走栈、解释堆栈帧、注入读写障碍等。我的主要目标 HLVM 项目将以最小的努力和风险变得有用,因此我选择在“不合作的环境”中使用影子堆栈,以避免对LLVM不成熟的内部进行黑客攻击。因此,那些关于LLVM对GC的内在支持的声明不适用于 的垃圾收集器,因为它根本不使用该基础结构。我的结果非常令人信服:你可以用最小的努力获得出色的性能( serial performance 和 parallel performance ). HLVM公司 已经在unix(包括macosx)上运行,因为它只需要POSIX线程。我强烈反对那种认为编写stop the world GC很难的说法:我花了5天时间编写了一个100行多核垃圾收集器,而我对计算机几乎一无所知。我也不敢相信移植到Windows会很困难。 |