这有点主观,但我很难让LLVM JIT加速。即使启用了延迟编译,Jitting大量代码也只需要解释它们的时间的50倍。
所以我想知道如何加快进度,我可以使用哪种设置?
还有其他建议吗?
答案 0 :(得分:11)
我很遗憾地说LLVM作为JIT编译器并不是很快,它作为AOT /静态编译器更好。
我在llvm-lua项目遇到了相同的速度问题。我所做的是禁用JIT编译大型Lua函数。 llvm-lua没有启用延迟编译支持,因为LLVM需要从Lua协同程序运行太多的C堆栈空间。
此外,如果您在程序的main()函数中使用它:
llvm::cl::ParseCommandLineOptions(argc, argv, 0, true);
它将从LLVM中暴露出很多命令行选项,例如'-time-passes',它将启用LLVM传递的时间,以查看JIT编译的哪些部分花费的时间最多。