Как рассчитать время выполнения скрипта

Рассмотрим этот редирект оболочки:telnet towel.blinkenlights.nl >> starWarzпо окончании сеанс прервется, отсоединится от хоста или что-то в этом роде. Я хочу знать, как долго длится соединение. Как я могу определить это?

2 ответа

Решение

Большинство снарядов имеет встроенный time, bash есть это тоже. Это покажет вам реальное человеческое время (real) процесс занимает с процессором время, затрачиваемое процессом на пользовательское пространство (user) и пространство ядра (sys).

Запустите команду time:

time telnet towel.blinkenlights.nl >> starWar

В конце bash покажет время на STDERR как:

real    XmX.XXXs
user    YmY.YYYs
sys     ZmZ.ZZZs

Даже если вы находитесь на оболочке, которая не имеет time встроенный у вас есть внешний time команда /usr/bin/time от time пакет. Использование такое же.

Похоже, вы ищете time встроенная:

$ help time
time: time [-p] pipeline
    Report time consumed by pipeline's execution.

    Execute PIPELINE and print a summary of the real time, user CPU time,
    and system CPU time spent executing PIPELINE when it terminates.

    Options:
      -p    print the timing summary in the portable Posix format

    The value of the TIMEFORMAT variable is used as the output format.

    Exit Status:
    The return status is the return status of PIPELINE.

Он напечатает отчет о времени, затраченном командой. Например:

$ time sleep 3

real    0m3.027s
user    0m0.000s
sys     0m0.000s

"Реальное" поле - это фактическое время, которое прошло, то же самое значение, которое вы бы измерили часами. Итак, вы можете просто сделать:

time telnet towel.blinkenlights.nl >> starWarz
Другие вопросы по тегам