How can I measure the execution time of a terminal process?
I'm trying to measure the execution time of a process that I call via the command line (i.e., I want to find out how long it takes to for the process to finish). Is there any command that I can add to the command calling the process that will achieve this?
Solution 1:
Add time
before the command you want to measure. For example: time ls
.
The output will look like:
real 0m0.606s
user 0m0.000s
sys 0m0.002s
Explanation on real
, user
and sys
(from man time
):
-
real
: Elapsed real (wall clock) time used by the process, in seconds. -
user
: Total number of CPU-seconds that the process used directly (in user mode), in seconds. -
sys
: Total number of CPU-seconds used by the system on behalf of the process (in kernel mode), in seconds.
Solution 2:
For a line-by-line delta measurement, try gnomon.
It is a command line utility, a bit like moreutils's ts, to prepend timestamp information to the standard output of another command. Useful for long-running processes where you'd like a historical record of what's taking so long.
Piping anything to gnomon will prepend a timestamp to each line, indicating how long that line was the last line in the buffer--that is, how long it took the next line to appear. By default, gnomon will display the seconds elapsed between each line, but that is configurable.
Solution 3:
You can use time
:
time ls -R