2012-06-14 28 views
7

que ejecutar un script en Ubuntu, y probó su tiempo:qué se cygwin tan lento

$ time ./merger 
./merger 0.02s user 0.03s system 99% cpu 0.050 total 

se gasta menos de 1 segundo. pero si he usado cygwin:

$ time ./merger 
real 3m22.407s 
user 0m0.367s 
sys  0m0.354s 

Se gastaron más de 3 minutos. ¿Por qué sucedió esto? ¿Qué debo hacer para aumentar la velocidad de ejecución en cygwin?

+2

Los procesos de desove en Windows son muy lentos en comparación con Linux: no hay mucho que cygwin pueda hacer para evitar esta limitación. –

+0

Compruebe si [esto] (http://stackoverflow.com/questions/2835775/msysgit-bash-is-horrendously-slow-in-windows-7) ayuda. –

+0

@PaulR pero no creo que sea tan lento como para resultar en un retraso de 3 minutos. Creo que había otros procesos ejecutándose en Windows cuando el OP intentó esto. O usó algo que es significativamente diferente en Windows y Linux dentro de su programa. –

Respuesta

1

Como ya se ha mencionado, Cygwin's implementation de fork y proceso de desove en Windows en general son lentos.

Usando this fork() benchmark, me sale siguientes resultados:

[email protected]:~$ ./test 1000 
Forked, executed and destroyed 1000 processes in 5.660011 seconds. 

[email protected]:~$ ./test 1000 
Forked, executed and destroyed 1000 processes in 0.142595 seconds. 

[email protected]:~$ ./test 1000 
Forked, executed and destroyed 1000 processes in 1.141982 seconds. 

Uso time (for i in {1..10000};do cat /dev/null;done) al rendimiento de los procesos de desove de referencia, consigo siguientes resultados:

[email protected]:~$ time (for i in {1..10000};do cat /dev/null;done) 
(...) 19.11s user 38.13s system 87% cpu 1:05.48 total 

[email protected]:~$ time (for i in {1..10000};do cat /dev/null;done) 
(...) 0.06s user 0.56s system 18% cpu 3.407 total 

[email protected]:~$ time (for i in {1..10000};do cat /dev/null;done) 
(...) 0.51s user 4.98s system 21% cpu 25.354 total 

especificaciones de hardware:

  • cygwin: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
  • arco: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
  • debian: Intel(R) Core(TM)2 Duo CPU T5270 @ 1.40GHz

Así que como ves, no importa lo que se utiliza, Cygwin siempre funcionará peor. Se pierde sin problemas incluso para hardware peor (cygwin frente a debian en este punto de referencia, según this comparison).

Cuestiones relacionadas