19

今日はパイストーンについて学んだので、自分のさまざまな環境がどのようなものかを確認することにしました。ベアメタルでウィンドウを実行しているラップトップでpystoneを実行し、これらの結果を取得しました

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from test import pystone
>>> for i in range(0,10):
...   pystone.pystones()
...
(1.636334799754252, 30556.094026423627)
(2.1157907919853756, 23631.82607155689)
(2.5324817108003685, 19743.479207278437)
(2.541626695533182, 19672.4405231788)
(2.536022267835051, 19715.915208695682)
(2.540327088340973, 19682.50475676099)
(2.544761766911506, 19648.20465716261)
(2.540296805235016, 19682.739393664764)
(2.533851636391205, 19732.804905346253)
(2.536483186973612, 19712.3325148696)

次に、いくつかのLinux VMで実行し、2.7〜3.4倍のパフォーマンスを実現しました。そこで、ラップトップでvmware Linux VMを起動し、同じテストを再実行して、次の結果を得ました。

Python 2.7.2+ (default, Oct  4 2011, 20:03:08) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> for i in range(0,10):
...   pystone.pystones()
... 
(1.75, 28571.428571428572)
(1.17, 42735.042735042734)
(1.6600000000000001, 30120.48192771084)
(1.8399999999999999, 27173.913043478264)
(1.8200000000000003, 27472.52747252747)
(1.8099999999999987, 27624.30939226521)
(1.3099999999999987, 38167.938931297744)
(1.7800000000000011, 28089.88764044942)
(1.8200000000000038, 27472.527472527414)
(1.490000000000002, 33557.04697986573)

同じウィンドウ内で実行されているLinuxVMが、ウィンドウの下で同じベアメタル上で実行されているPythonよりも実際に高速である方法を完全に理解することはできません。

同じボックスでLinuxを実行しているVM内よりも、ベアOSでのパフォーマンスが遅くなるWindows上のPythonの違いは何ですか?

  • 詳細WindowsプラットフォームWin7x64両方のプラットフォームで実行されている32ビットPythonVMWareでWindowsプラットフォームを実行している32ビットLinuxVM
4

4 に答える 4

10

あなたの質問にはお答えできませんが、違いを生む可能性のある次のリストを検討してください。

  • 異なるバージョンの Python を使用しています。「2.7.2+」は、Linux Python がリリースではなくバージョン管理チェックアウトからビルドされたことを示します。

  • それらは異なるコンパイラでコンパイルされました (そしておそらく意味のある異なる最適化レベル)。

  • あなたはこれほどの繁殖について言及していません。そうでなければ、まぐれだったと考えられます。

  • VM のタイミングが不正確である可能性があります。

  • Ignacio Vazquez-Abrams が指摘するように、Python の依存関係、特に libc のさまざまな実装をリンクしています。

  • pystone の実際のベンチマークがどのようなものかはわかりませんが、Unicode 処理やディスク IO などはシステムに依存する要因である可能性があります。

于 2012-04-16T20:11:56.190 に答える
3

その Windows ボックスでウイルス対策ソフトウェアを実行していますか? これで説明がつくかもしれません。個人的には、Python、Cygwin、およびソース ディレクトリをウイルス対策の除外リストに追加するのが好きです。わずかではありますが、顕著な速度向上が得られると思います。多分それはあなたの結果を説明します。

于 2014-03-07T10:40:04.517 に答える