47

巨大なテキスト ファイル (約 400 万行) を処理し、データを 2 つの別々のファイルに書き込む Python スクリプトがあります。

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

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

編集

400 万行のファイルのすべての行に対して print ステートメントを使用すると、時間がかかりすぎることがわかりました。

4

2 に答える 2

58

楽しみのために非常に単純なスクリプトで試してみましたが、違いは非常に驚異的です。

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
于 2012-11-08T12:15:09.537 に答える