为什么调用mjit函数?

时间:2019-07-01 20:48:22

标签: ruby jit ruby-2.6

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

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

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

谢谢。

这是针对Ruby 2.6.2版的。而且,我已经遍历了源代码以及解释每个代码的注释,但是它们并不十分清楚。

0 个答案:

没有答案