如何将python中的Class对象转换为llvm?

时间:2012-07-10 12:24:44

标签: python class llvm llvm-py

我愿意使用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

我将不胜感激任何帮助!

1 个答案:

答案 0 :(得分:1)

简短回答:你不能。

原因是Python是一种解释型语言,语言中有几种语句不容易用于静态评估。

我的建议是你对你的程序进行概要分析(例如,如果你正在运行Linux使用IPython的run -p选项,或者通常通过cProfile模块),并弄清楚是什么占用了大部分节目的时间。

在大多数程序中,总运行时间的很大一部分由相对较小的代码区域占用,并且通过算法改进或通过编写C扩展(例如通过SWIG)来改进它通常会导致性能提升一个数量级。

这种优化通常比尝试使“一切运行得更快”更有效。