web-dev-qa-db-ja.com

Pythonスクリプトでのprintステートメントの使用によるパフォーマンスへの影響

私はPythonスクリプトを使用して(約4千行の)巨大なテキストファイルを処理し、2つの個別のファイルにデータを書き込みます)。

デバッグ用にすべての行の文字列を出力する印刷ステートメントを追加しました。パフォーマンスの観点からそれがどれほど悪いのか知りたいですか?

非常に悪い場合は、デバッグ行を削除できます。

編集

400万行のファイル内のすべての行に印刷ステートメントがあると、時間が大幅に増加していることがわかります。

28
Sudar

楽しみのために非常に単純なスクリプトでそれを実行しようとしましたが、違いは非常に驚異的です。

Large.pyの場合:

target =  open('target.txt', 'w')

for item in xrange(4000000):
    target.write(str(item)+'\n')
    print item

タイミング:

[gp@imdev1 /tmp]$ time python large.py
real    1m51.690s
user    0m10.531s
sys     0m6.129s

gp@imdev1 /tmp]$ ls -lah target.txt 
-rw-rw-r--. 1 gp gp 30M Nov  8 16:06 target.txt

「print」をコメントアウトして同じように実行しています。

gp@imdev1 /tmp]$ time python large.py 
real    0m2.584s
user    0m2.536s
sys     0m0.040s
31
GSP