3

我正在研究 ruby​​ 解释器和 mJIT。而且,作为第一步,我想了解两者的行为。因此,我只是简单地运行了一个没有 --jit 命令的非常简单的 ruby​​ 程序puts ("hello world!")并获得了它的执行跟踪。然后,我发现即使没有启用 mJIT,也会调用一些 mJIT 函数,例如mjit_add_class_serialmjit_remove_class_serialmjit_markmjit_gc_finish_hookmjit_free_iseqmjit_finish

而且,我想了解为什么会这样。我的猜测是解释器和 mJIT 共享其中一些代码,但不是 100% 确定。特别是,描述mjit_finish简单地说它是为了完成 mJIT 编译器正在发生的任何操作。在这种情况下,为什么解释器只执行代码时会调用此函数?

如果有人对我的问题有任何想法,任何建议将不胜感激。

谢谢你。

这适用于 ruby​​ 版本 2.6.2。而且,我已经浏览了源代码以及解释每个代码的注释,但它们不是很清楚。

4

0 回答 0