c++ - 通过基于运行时信息重新编译部分的 Cpp 二进制代码 JIT 优化
问题描述
性能对我的 cpp 应用程序(内存数据库)非常重要。我尝试在运行时使用 JIT,这意味着在运行时编译和优化 vanilla cpp 代码的部分。从头开始的新编译时间是非常不确定的,并且总体收益是有上限的。虽然它提供了良好的性能,但我希望我能提取更多,
我的想法是,如果我在编译时从一些 release/opt 编译的二进制等价物开始,然后在运行时优化它,这取决于是否可以进行基于数据的优化。基本上,当没有进行 JIT 优化时,这种二进制文件的性能应该与本机二进制文件相同。如果数据太大或者如果可以进行动态优化,那么我愿意花一些时间在构建上运行优化传递。从概念上讲,在这里我将节省首次传递代码以将其转换为可运行代码模块的编译成本。
可能是,我说的是高级别的,但是当第一次编译过程很耗时,因为将 cpp 文本代码转换为未优化的机器代码(因为它需要大量的内存分配),它会更有意义,相比之下,各个优化过程所花费的时间很小。你有任何指针或资源吗?
解决方案
推荐阅读
- c# - 使用实体框架从父路径创建子层次结构
- java - java - 如何使用选择来验证java类中的多个值?
- r - 在 R 中重新分类因子水平
- python - 使用 cython/numpy/通过使用另一个包加速 pandas 数据帧子集
- typescript - 如何在该计算属性方法中读取计算属性的当前值?
- php - ( ErrorTypeError: Failed to fetch ) 当我尝试从 react native 将值插入我的 Mysql 数据库(在线托管)时出错
- javascript - 引导卡上的分页
- pine-script - 是否可以将文本输入一起添加到一个变量中?
- c++ - 使用 windows api c++ 更改 windows 立体声混音器的声音输出
- node.js - 我如何通过关系ID从mongos节点js中的用户表中获取数据