Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Overview  



1.1  User time vs system time  





1.2  Real time vs CPU time  







2 Usage  



2.1  time -p  







3 Implementations  



3.1  GNU time  



3.1.1  Method of operation  







3.2  Bash  







4 See also  





5 References  














time (Unix)






العربية
Català
Čeština
Deutsch
Español
فارسی
Français

Italiano
עברית
Magyar

Polski
Português
Română
Русский
Türkçe
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


time
Developer(s)Various open-source and commercial developers
Operating systemUnix, Unix-like, Inferno
PlatformCross-platform
TypeCommand

Incomputing, time is a command in Unix and Unix-like operating systems. It is used to determine the duration of execution of a particular command.

Overview[edit]

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

User time vs system time[edit]

The total CPU time is the combination of the amount of time the CPU or CPUs spent performing some action for a program and the amount of time they 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 execorfork, 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, but on a multicore system these tasks are run in parallel, the total CPU time may be greater than the real time.

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 103.102.166.224
wikipedia.org mail is handled by 50 mx2001.wikimedia.org.
wikipedia.org mail is handled by 10 mx1001.wikimedia.org.
host wikipedia.org  0.04s user 0.02s system 7% cpu 0.780 total
$

time (either a standalone program, or when Bash shell is running in POSIX mode AND time is invoked as time -p) reports to standard error output.

time -p[edit]

Portable scripts should use time -p mode, which uses a different output format, but which is consistent with various implementations:

$ time -p sha256sum /bin/ls
12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc  /bin/ls
real 0.00
user 0.00
sys 0.00
$

Implementations[edit]

GNU time[edit]

Current versions of GNU time, report more than just a time by default:

$ /usr/bin/time sha256sum /bin/ls
12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc  /bin/ls
0.00user 0.00system 0:00.00elapsed 100%CPU (0avgtext+0avgdata 2156maxresident)k
0inputs+0outputs (0major+96minor)pagefaults 0swaps
$

Format of the output for GNU time, can be adjusted using TIME environment variable, and it can include information other than the execution time (i.e. memory usage). This behavior is not available in general POSIX-compliant time, or when executing as time -p.

Documentation of this time can be usually accessed using man 1 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.

Bash[edit]

In a popular Unix shell Bash, time is a special keyword, that can be put before a pipeline (or single command), that measures time of entire pipeline, not just a singular (first) command, and uses a different default format, and puts empty line before reporting times:

$ time seq 10000000 | wc -l
10000000

real 0m0.078s
user 0m0.116s
sys 0m0.029s
$

The reported time is a time used by both seq and wc -l added up. Format of the output can be adjusted using TIMEFORMAT variable.

The time is not a builtin, but a special keyword, and can't be treated as a function or command. It also ignores pipeline redirections (even when executed as time -p, unless entire Bash is run in "POSIX mode").

Documentation of this time can be accessed using man 1 bash, or within bash itself using help time.

See also[edit]

References[edit]


Retrieved from "https://en.wikipedia.org/w/index.php?title=Time_(Unix)&oldid=1115593213"

Categories: 
Unix SUS2008 utilities
Unix process- and task-management-related software
Inferno (operating system) commands
Hidden categories: 
Articles with short description
Short description is different from Wikidata
 



This page was last edited on 12 October 2022, at 06:40 (UTC).

Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Mobile view



Wikimedia Foundation
Powered by MediaWiki