Por que o Python é muito mais lento no Windows?
Eu aprendi sobre pystones hoje e então decidi ver como eram meus vários ambientes. Eu corri pystones no meu laptop que está executando o Windows no metal nu e tenho esses resultados
<code>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) </code>
Então eu o executei em algumas de nossas VMs linux e obtive um desempenho de 2.7-3.4 vezes melhor. Então eu liguei meu VM vmware Linux no meu laptop e executei novamente o mesmo teste e obtive estes resultados:
<code>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) </code>
Eu não consigo entender como o Linux VM rodando dentro das mesmas janelas é realmente mais rápido do que python rodando no mesmo metal nu no Windows.
O que há de tão diferente no Python no Windows que ele executa mais lentamente no sistema operacional do que dentro de uma VM que executa o Linux na mesma caixa?
Mais detalhes Plataforma Windows Win7x64 32 bit python em execução em ambas as plataformas 32 bit linux VM executando a plataforma Windows em VMWare