我编译并尝试分析 libjit (mul_add) 中的第一个教程:- https://www.gnu.org/software/libjit/doc/libjit_3.html#SEC6
但是,在将其与本机编译代码进行比较时,它的运行速度大约慢了 1000 倍。在使用呼叫研磨进行分析时,出现的一些热点是:-
jit_apply (17.5%)
jit_apply_builder_add_arguments(14.25%)
jit_type_normalize (9%)
jit_backtrace_push (7%)
jit_exception_clear_last (6.5%)
jit_thread_get_control (6.5%)
jit_type_get_param (5%)
and so on and so forth
我的问题是,我在这里做错了吗?此外,这是在调用 libjit 函数时总是产生的恒定成本,还是有什么方法可以消除这种成本?
另外,如果这是一个恒定的成本,这是否意味着编译函数有一定的最小大小,之后使用 libjit 实际上是“值得的”?