2012-04-14 127 views
11

今天我瞭解了pystones,所以我決定看看我的各種環境是什麼樣的。我跑了運行在裸機上的窗戶上我的筆記本電腦pystones並得到了這些結果爲什麼python在windows上慢得多?

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虛擬機,並得到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) 

我不是很瞭解同一窗口內運行Linux的虛擬機實際上是如何快於蟒蛇上運行windows下的裸機。

Windows上的python有什麼不同,它在裸OS上執行得比在同一個盒子上運行Linux的VM內執行速度慢?

  • 更多細節 Windows平臺Win7x64 32位蟒蛇在這兩個平臺上運行 32位Linux虛擬機上運行的Windows平臺在VMWare
+0

取決於同時運行的其他進程。 – 2012-04-14 04:03:47

+2

不同的libc。*運行* – 2012-04-14 04:03:59

+5

Python是否在虛擬機和Linux 64位上運行?我看到Windows版本是32位。確保你比較蘋果和蘋果。 – agf 2012-04-14 04:08:17

回答

7

我不能回答你的問題,但是考慮這個名單可能會有所作爲的事情:

  • 您正在使用不同版本的Python。 「2.7.2+」表示你的linux是由版本控制檢出而不是發行版構建的。

  • 他們被編譯與不同的編譯器(和可想而知有意義的不同優化級別)。

  • 你還沒有提到複製這麼多。可以想象,如果你沒有的話,這是一種僥倖。

  • 您的VM可能計時不準確。

  • 您正在鏈接Python的依賴項的不同實現,特別是Ignacio Vazquez-Abrams指出的libc。

  • 我不知道pystone的實際基準是什麼樣的,但許多事情工作不同 - 像unicode處理或磁盤IO的東西可能是系統相關的因素。

+0

我再現它我寫此之前的3倍。是的,我沒有提到它。 – boatcoder 2012-04-18 03:41:17

3

您是否在該Windows機器上運行防病毒軟件?這也許可以解釋它。我個人喜歡將Python,Cygwin和我的源代碼目錄添加到防病毒排除列表 - 我想我得到一個小的,但明顯的加速。也許這解釋了你的結果。

+0

不,沒有殺毒軟件。 – boatcoder 2014-03-07 13:54:43

2

在Windows 10上有類似的問題 - 這是因爲Windows Defender

我必須在Windows Defender設置中排除python目錄和進程並重新啓動計算機。之前:我不得不等待大約20秒來運行任何python代碼 - 現在它是毫秒。

相關問題