for*_*ran 5 c lisp jit inline metaprogramming
我正在考虑一个非常JIT能够解决的典型问题,但很难用原始C进行处理.该场景设置了一系列函数指针,这些指针在运行时将被"组合"(如在数学函数组合中)然后很多次打电话.
以明显的方式执行它涉及许多虚拟调用,这是昂贵的,并且如果有足够的嵌套函数来完全填充CPU分支预测表,那么性能会大幅下降.
在像Lisp这样的语言中,我可以处理代码并用函数的实际内容替换"虚拟"调用,然后调用compile以获得优化版本,但这似乎非常hacky并且在C中容易出错,并且使用C是这个问题的要求;-)
那么,你知道在C中是否有标准,便携和安全的方法来实现这一目标吗?
干杯