4

我编译并尝试分析 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 实际上是“值得的”?

4

1 回答 1

4

所以我得到了 libjit 邮件列表上某人的回复。显然,使用 jit_function_to_closure 会为 jit_function_t 对象创建一个 C 闭包,然后可以从您的代码中本地调用该闭包。

高温高压

于 2013-09-20T16:12:17.243 回答