我知道这个问题涉及到实现特定的领域,但是在这一点上,Rakudo/MoarVM特定的答案也会对我有所帮助。
我正在开发一些NativeCall模块,并想知道如何调试内存泄漏。一些内存被处理在C库中,我已经很好地掌握了那里的情况。我知道该领域是我的责任,MoarVM在那里无能为力。那么在MoarVM领域中我该怎么做?检查悬空对象、循环引用等最佳方法是什么?
在一系列操作结束时,是否有一种方式可以说“运行垃圾回收并告诉我剩下的所有内容”?我认为所有的Perl对象都已经超出范围。
是否有一些Rakudo/NQP/MoarVM特定的代码可以帮助我?这不是要在生产环境中发布,只是在开发过程中用于测试/诊断。
MoarVM中的垃圾回收提供了一个令人兴奋的概述,但对我来说还不足以做出什么实际操作。