首页 > 解决方案 > 通过基于运行时信息重新编译部分的 Cpp 二进制代码 JIT 优化

问题描述

性能对我的 cpp 应用程序(内存数据库)非常重要。我尝试在运行时使用 JIT,这意味着在运行时编译和优化 vanilla cpp 代码的部分。从头开始的新编译时间是非常不确定的,并且总体收益是有上限的。虽然它提供了良好的性能,但我希望我能提取更多,

我的想法是,如果我在编译时从一些 release/opt 编译的二进制等价物开始,然后在运行时优化它,这取决于是否可以进行基于数据的优化。基本上,当没有进行 JIT 优化时,这种二进制文件的性能应该与本机二进制文件相同。如果数据太大或者如果可以进行动态优化,那么我愿意花一些时间在构建上运行优化传递。从概念上讲,在这里我将节省首次传递代码以将其转换为可运行代码模块的编译成本。

可能是,我说的是高级别的,但是当第一次编译过程很耗时,因为将 cpp 文本代码转换为未优化的机器代码(因为它需要大量的内存分配),它会更有意义,相比之下,各个优化过程所花费的时间很小。你有任何指针或资源吗?

标签: c++llvmcompiler-optimizationjit

解决方案


推荐阅读