-8

300k の巨大なファイルを処理していますが、重大なパフォーマンスの問題が発生しています。

問題は、実行されているチェックの数にあります。

多くの関数があり、それらを匿名関数に変換する予定です。

無名関数を使用した場合にパフォーマンスが向上するかどうかを知りたいです。

4

1 に答える 1

3

質問自体は簡単に答えられます.Pythonで無名関数を使用してもパフォーマンスは向上しません. 実際に遅くしている可能性は十分にあります。

単純timeitな関数で簡単なテストを行うと、この 2 つの間に実際の違いはないことがわかります。この 2 つの関数を使用します。

def test(message):
    return message + message

testanon = lambda message: message + message

次に、timeitモジュールを使用して実行速度をテストします。

>>> timeit.repeat("test('test')", setup="from __main__ import test")
[0.16360807418823242, 0.1602180004119873, 0.15763211250305176]
>>> timeit.repeat("testanon('test')", setup="from __main__ import testanon")
[0.15949010848999023, 0.15913081169128418, 0.17438983917236328]

目に見えるように、実際に検討する価値のある実際の大幅なパフォーマンスの向上はありません。パフォーマンスの問題はおそらく別の場所にあります。

于 2013-06-27T00:33:31.820 に答える