2016-08-03 14 views
0

私は次の問題に直面しました。コンピュータ(番号2)のスクリプト実行時間が別のコンピュータ(コンピュータ1)よりも大幅に大きいです。異なるコンピュータでのスクリプト実行時間(python 3.5、miniconda)

  • コンピュータ1 - I3 - I7 - - 4170 CPU 3.7ギガヘルツ(4コア)、4ギガバイトRAM(実行時間9.5分)
  • コンピュータ2 @ 3.07GHz(8コア)、8ギガバイトRAM(実行時間15 -17分)

私はExcelファイルを処理するためにPythonを使用します。 私は、これらの3つのライブラリのインポート:

  • xlrdxlsxwriter

win32comなぜ実行時間が違うのですか?どうすれば修正できますか?

+1

FWIWの場合、「高速PC」のコアあたりのGHz数は3.7(3.7 vs 3.07)です。 Pythonは[Global Interpreter Lock(GIL)](http://stackoverflow.com/questions/4496680/python-threads-all-executing-on-a-single-core)のために1つのコアしか使用しないため、より多くのGHzコアごとに、スクリプトが速くなります。 –

答えて

0

コメントで説明したように、PythonはGlobal Interpreter Lock (GIL)を使用します。 Wikiに記載されているように: "GILを使用する通訳者は、の1つのスレッドが常にマルチコアプロセッサで実行されていても、を実行することができます。

あなたのi3プロセッサはi7の8コアではなく4コアしか持たないかもしれませんが、Pythonは一度に1スレッドしか使用しません:コアが速ければ速いほど、スクリプトは速く実行されます。 this pageで説明されているように、「CPU速度は、1秒間に実行できる計算の数を決定します。速度が高いほど計算が多くなり、コンピュータが高速になります」

1

これはシングルコアで動作し、コンピュータ1のクロック速度は速くなり、シングルスレッド処理は高速になります。

関連する問題