time: Accuracy
1.5 Accuracy
============
The elapsed time is not collected atomically with the execution of the
program; as a result, in bizarre circumstances (if the 'time' command
gets stopped or swapped out in between when the program being timed
exits and when 'time' calculates how long it took to run), it could be
much larger than the actual execution time.
When the running time of a command is very nearly zero, some values
(e.g., the percentage of CPU used) may be reported as either zero (which
is wrong) or a question mark.
Most information shown by 'time' is derived from the 'wait3' system
call. The numbers are only as good as those returned by 'wait3'. Many
systems do not measure all of the resources that 'time' can report on;
those resources are reported as zero. The systems that measure most or
all of the resources are based on 4.2 or 4.3BSD. Later BSD releases use
different memory management code that measures fewer resources.
On systems that do not have a 'wait3' call that returns status
information, the 'times' system call is used instead. It provides much
less information than 'wait3', so on those systems 'time' reports most
of the resources as zero.
The '%I' and '%O' values are allegedly only "real" input and output
and do not include those supplied by caching devices. The meaning of
"real" I/O reported by '%I' and '%O' may be muddled for workstations,
especially diskless ones.