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モジュールを使用して)、プログラムの時間の大部分を占めているものを把握することです。

ほとんどのプログラムでは、総実行時間の高い割合が比較的小さなコード領域に費やされており、それを改善すると(アルゴリズムの改善、またはSWIGなどのC拡張機能の記述によって)、多くの場合、次のような結果になります。パフォーマンスの大幅な向上。

この種の最適化は、通常、「すべてをより高速に実行」しようとするよりもはるかに効果的です。

于 2012-07-13T17:55:54.350 に答える