Oggi ho imparato a conoscere i pistooni e così ho deciso di vedere come erano i miei vari ambienti. Ho eseguito pystones sul mio portatile che esegue Windows sul metallo nudo ed ho ottenuto questi risultatiPerché Python è molto più lento su 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)
Poi mi sono imbattuto su alcuni dei nostri Linux VM ed ho ottenuto 2.7-3.4 volte superiori. Così ho sparato il mio vmware Linux VM sul mio portatile e reran lo stesso test e ottenuto questi risultati:
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)
Non riesco a capire come il Linux VM in esecuzione all'interno delle stesse finestre in realtà è più veloce di Python in esecuzione su lo stesso metallo nudo sotto le finestre.
Cosa c'è di così diverso in Python su Windows che si comporta più lentamente sul sistema operativo nudo che in una macchina virtuale che esegue Linux nella stessa casella?
- Maggiori dettagli piattaforma Windows Win7x64 32 bit di pitone in esecuzione su entrambe le piattaforme a 32 bit linux VM in esecuzione sulla piattaforma Windows in VMWare
Dipende dagli altri processi in esecuzione nello stesso momento. –
Diverse libc.* corre * –
Il Python era in esecuzione nella VM e su Linux a 64 bit? Vedo che la versione di Windows era a 32 bit. Assicurati di confrontare le mele con le mele. – agf