1

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

如果有任何帮助,我将不胜感激!

4

1 回答 1

1

简短的回答:你不能。

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

我的建议是你分析你的程序(例如,如果你正在运行 Linux 使用 IPython 的 run -p 选项,或者通常通过cProfile模块),并找出占用程序大部分时间的原因。

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

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

于 2012-07-13T17:55:54.350 回答