|
|
1
6
你可能想看看LLVM。他们有一个库,允许从C中进行代码(以及更多的东西)的JIT,它支持许多平台,它是一个开源项目: http://llvm.org/ |
|
2
1
关于消除虚拟函数调用,我有两个建议, 如果 性能所必需的。为了便于说明,假设有一个函数以函数指针为参数:
假设你知道 提前 函数指针可以接受的所有可能值。例如:
首先将原来的my_algorithm()转换为宏:
然后将我的_algorithm()重写为:
这当然会使编译后的对象文件的大小增加一倍。从表面上看,它只删除一个间接级别。但是,如果func_1和/或func_2是内联的,您可能会获得相当大的加速。 甚至可以“传递”宏,如:
第二个建议是使用x宏对其进行了修改。( http://en.wikipedia.org/wiki/C_preprocessor#X-Macros )不要定义,而是将原始my_algorithm()的主体放在单独的文件my_algorithm.h中。然后将my_algorithm()重写为:
如果代码超过几十行,我可能会使用x宏。其优点 包括 (没有双关语):
这都是标准的C,但相当古老。 |
|
|
3
0
如果您只支持x86,可以尝试嵌入tcc: |