time (Unix)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
This article is about the Unix command. For Unix's means of representing points in time, see Unix time. For the Unix function call, see time.h.

time is a command in the Unix operating systems. It is used to determine the duration of execution of a particular command.

Usage[edit]

To use the command, simply precede any command by the word time, such as:

time ls

When the command completes, time will report how long it took to execute the ls command in terms of user CPU time, system CPU time, and real time. The output format varies between different versions of the command, and some give additional statistics, as in this example:

 $ time host wikipedia.org
 wikipedia.org has address 207.142.131.235
 0.000u 0.000s 0:00.17 0.0%      0+0k 0+0io 0pf+0w
 $

time(1) can exist as a standalone program (such as GNU time) or as a shell builtin (e.g. in tcsh or in zsh).

User Time vs System Time[edit]

The term 'user CPU time' can be a bit misleading at first. To be clear, the total CPU time is the combination of the amount of time the CPU(s) spent performing some action for a program and the amount of time the CPU(s) spent performing system calls for the kernel on the program's behalf. When a program loops through an array, it is accumulating user CPU time. Conversely, when a program executes a system call such as exec or fork, it is accumulating system CPU time.

Real Time vs CPU Time[edit]

The term "real time" in this context refers to elapsed "wall clock" time, like using a stop watch. The total CPU time (user time + sys time) may be more or less than that value. Because a program may spend some time waiting and not executing at all (whether in user mode or system mode) the real time may be greater than the total CPU time. Because a program may fork children whose CPU times (both user and sys) are added to the values reported by the time command, the total CPU time may be greater than the real time.

Method of operation[edit]

According to the source code of the GNU implementation of time, most information shown by time is derived from the wait3 system call. On systems that do not have a wait3 call that returns status information, the times system call is used instead.

See also[edit]

  • System time
  • Cron process for scheduling jobs to run at a particular time.

References[edit]