2016-05-04 19 views
2

urlopen_test()という関数でurllib.urlopen()を使用します。この関数ではurlopenを2回呼び出しますが、最初の呼び出しは非常に高速ですが、2回目は呼び出されません。誰でも電話で私は理由を理解するのに役立ちますか?2回目の呼び出しでurlopenが非常に遅い

ところで、私はline_profileを使用して、関数内のすべての行を検査します。結果は以下のとおりです。

ライン#が、私はポイントを見つける

5           @profile 
6           def urlopen_test(): 
7   1  28690 28690.0  0.1  fh =urllib.urlopen('ftp://a.com/1.log') 
8   1   58  58.0  0.0  print fh.read() 
9 
10   1  30027787 30027787.0  99.9  fh = urllib.urlopen('ftp://a.com/1.log') 
11   1   40  40.0  0.0  print fh.read() 

答えて

1

ヒット%タイムラインの内容当たりの時間をヒット。最初のfh.read()の後にfh.close()と呼ぶと、urlopen_test()関数が高速に実行されます。しかし、私はまだ最初のurlopenが返すファイルを閉じるときに、2番目のurlopen()が本当に速く実行される理由を理解できません。

関連する問題