2012-10-11 37 views
5

Cuando pruebo un script de Perl en Linux y el uso de time sh -c para medir el tiempo pasó, me dieron un resultado extraño:Linux dominio real de tiempo resultante es menor que el usuario

real 14m11.903s 
user 34m39.319s 
sys  16m54.074s 

que significa que el tiempo real invertido es aún menos que el tiempo del usuario. Y al contar visualmente el tiempo yo solo, el guion no gastó tanto como 34 minutos, y el tiempo real está más cerca de lo que veo. ¿Alguien tiene alguna pista sobre esto? Gracias.

Respuesta

9

La secuencia de comandos podría haber utilizado más de 1 núcleo.

+0

Sí, eso es cierto, así que si tengo un script de varios hilos con 4 hilos trabajando y el tiempo de usuario es de 16 m, ¿puedo decir que el tiempo real es de aproximadamente 4 m? – lolibility

+0

Depende de muchas cosas. Normalmente, debido a limitaciones de recursos compartidos (memoria, disco, secciones mutex, etc.) no funcionará perfectamente. – jmh

1

La línea de usuario muestra el tiempo total de CPU que el proceso utilizó directamente. Si su proceso tiene más de un hilo y su CPU tiene más de un núcleo, entonces puede usar más tiempo de CPU que el reloj de pared.

Cuestiones relacionadas