我愿意使用 llvm 来优化我的 python 代码。我读了一些教程,但我还没有弄清楚如何将类对象从 python 代码导出到 llvm。我学会了如何在 llvm-py 中创建函数,但类超出了我的能力范围。
这是我想在 llvm 代码中创建的类的示例:
class Char():
def __init__(self,c):
self.c=c
def next(self,line,p):
try:
return self.c==line[p]
except:
return False
def next_rep(self,line,p):
try:
return self.c==line[p],p
except:
return False,p
如果有任何帮助,我将不胜感激!
最佳答案
简短回答:你不能。
原因是Python是一种解释性语言,并且该语言中有一些语句不容易用于静态计算。
我的建议是分析你的程序(例如,如果你运行的是 Linux,请使用 IPython 的 run -p 选项,或者通常通过 cProfile 模块),并找出是什么占用了程序的大部分时间.
在大多数程序中,总运行时间的很大一部分由相对较小的代码区域占用,并且对其进行改进(通过算法改进或通过编写 C 扩展,例如通过 SWIG)通常会导致性能提高了一个数量级。
这种优化通常比试图让“一切运行得更快”更有效。
关于python - 如何将 python 中的 'transform' 类对象转换为 llvm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413259/