300k の巨大なファイルを処理していますが、重大なパフォーマンスの問題が発生しています。
問題は、実行されているチェックの数にあります。
多くの関数があり、それらを匿名関数に変換する予定です。
無名関数を使用した場合にパフォーマンスが向上するかどうかを知りたいです。
質問自体は簡単に答えられます.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]
目に見えるように、実際に検討する価値のある実際の大幅なパフォーマンスの向上はありません。パフォーマンスの問題はおそらく別の場所にあります。