Rubycallcc
捕获当前的延续,随后可以调用它来恢复控件,但不能恢复数据。我想捕捉当前的延续以及内存的当前图像。
在我看来,捕获堆应该不是很困难。我可以依赖ObjectSpace::each_object
and ObjectSpace::dump_all
, or Marshal.dump
,或者只是简单Object.clone
的 。但是,我没有看到任何直接的方法来恢复堆。理想情况下,我想遍历object_id -> object
地图,为每个对象恢复旧图像object_id
(并重新添加object_id
相应对象是否已被 GC'd)。不出所料,没有 Ruby 级别的 api 可以让我这样做。我想知道是否有任何我可以使用的 Ruby GC 的低级钩子。
感谢您提供任何帮助,包括有关替代方法的建议。