| Upstream-Status: Backport |
| |
| --- time-1.7.orig/configure.in |
| +++ time-1.7/configure.in |
| @@ -1,11 +1,8 @@ |
| dnl Process this file with autoconf to produce a configure script. |
| AC_INIT(time.c) |
| -VERSION=1.7 |
| -AC_SUBST(VERSION) |
| -PACKAGE=time |
| -AC_SUBST(PACKAGE) |
| +AM_INIT_AUTOMAKE(time, 1.7) |
| |
| -AC_ARG_PROGRAM |
| +AM_MAINTAINER_MODE |
| |
| dnl Checks for programs. |
| AC_PROG_CC |
| @@ -15,7 +12,7 @@ |
| dnl Checks for header files. |
| AC_HEADER_STDC |
| AC_HEADER_SYS_WAIT |
| -AC_CHECK_HEADERS(unistd.h string.h sys/rusage.h) |
| +AC_CHECK_HEADERS(unistd.h string.h sys/rusage.h sys/resource.h) |
| |
| dnl Checks for typedefs, structures, and compiler characteristics. |
| AC_C_CONST |
| --- time-1.7.orig/version.texi |
| +++ time-1.7/version.texi |
| @@ -1,3 +1,3 @@ |
| -@set UPDATED 12 June 1996 |
| +@set UPDATED 9 May 2002 |
| @set EDITION 1.7 |
| @set VERSION 1.7 |
| --- time-1.7.orig/time.c |
| +++ time-1.7/time.c |
| @@ -147,6 +147,10 @@ |
| NULL |
| }; |
| |
| + |
| +/* If true, do not show the exit message */ |
| +static boolean quiet; |
| + |
| /* If true, show an English description next to each statistic. */ |
| static boolean verbose; |
| |
| @@ -172,6 +176,7 @@ |
| {"help", no_argument, NULL, 'h'}, |
| {"output-file", required_argument, NULL, 'o'}, |
| {"portability", no_argument, NULL, 'p'}, |
| + {"quiet", no_argument,NULL, 'q'}, |
| {"verbose", no_argument, NULL, 'v'}, |
| {"version", no_argument, NULL, 'V'}, |
| {NULL, no_argument, NULL, 0} |
| @@ -333,7 +338,8 @@ |
| else if (WIFSIGNALED (resp->waitstatus)) |
| fprintf (fp, "Command terminated by signal %d\n", |
| WTERMSIG (resp->waitstatus)); |
| - else if (WIFEXITED (resp->waitstatus) && WEXITSTATUS (resp->waitstatus)) |
| + else if (WIFEXITED (resp->waitstatus) && WEXITSTATUS (resp->waitstatus) |
| + && !quiet) |
| fprintf (fp, "Command exited with non-zero status %d\n", |
| WEXITSTATUS (resp->waitstatus)); |
| |
| @@ -523,6 +529,7 @@ |
| char *format; /* Format found in environment. */ |
| |
| /* Initialize the option flags. */ |
| + quiet = false; |
| verbose = false; |
| outfile = NULL; |
| outfp = stderr; |
| @@ -536,7 +543,7 @@ |
| if (format) |
| output_format = format; |
| |
| - while ((optc = getopt_long (argc, argv, "+af:o:pvV", longopts, (int *) 0)) |
| + while ((optc = getopt_long (argc, argv, "+af:o:pqvV", longopts, (int *) 0)) |
| != EOF) |
| { |
| switch (optc) |
| @@ -555,6 +562,9 @@ |
| case 'p': |
| output_format = posix_format; |
| break; |
| + case 'q': |
| + quiet = true; |
| + break; |
| case 'v': |
| verbose = true; |
| break; |
| @@ -642,9 +652,9 @@ |
| fflush (outfp); |
| |
| if (WIFSTOPPED (res.waitstatus)) |
| - exit (WSTOPSIG (res.waitstatus)); |
| + exit (WSTOPSIG (res.waitstatus) + 128); |
| else if (WIFSIGNALED (res.waitstatus)) |
| - exit (WTERMSIG (res.waitstatus)); |
| + exit (WTERMSIG (res.waitstatus) + 128); |
| else if (WIFEXITED (res.waitstatus)) |
| exit (WEXITSTATUS (res.waitstatus)); |
| } |
| @@ -657,7 +667,7 @@ |
| fprintf (stream, "\ |
| Usage: %s [-apvV] [-f format] [-o file] [--append] [--verbose]\n\ |
| [--portability] [--format=format] [--output=file] [--version]\n\ |
| - [--help] command [arg...]\n", |
| + [--quiet] [--help] command [arg...]\n", |
| program_name); |
| exit (status); |
| } |
| --- time-1.7.orig/resuse.h |
| +++ time-1.7/resuse.h |
| @@ -36,19 +36,8 @@ |
| # include <sys/rusage.h> |
| #else |
| # define TV_MSEC tv_usec / 1000 |
| -# if HAVE_WAIT3 |
| +# if HAVE_SYS_RESOURCE_H |
| # include <sys/resource.h> |
| -# else |
| -/* Process resource usage structure. */ |
| -struct rusage |
| -{ |
| - struct timeval ru_utime; /* User time used. */ |
| - struct timeval ru_stime; /* System time used. */ |
| - int ru_maxrss, ru_ixrss, ru_idrss, ru_isrss, |
| - ru_minflt, ru_majflt, ru_nswap, ru_inblock, |
| - ru_oublock, ru_msgsnd, ru_msgrcv, ru_nsignals, |
| - ru_nvcsw, ru_nivcsw; |
| -}; |
| # endif |
| #endif |
| |
| --- time-1.7.orig/time.texi |
| +++ time-1.7/time.texi |
| @@ -11,6 +11,12 @@ |
| @finalout |
| @end iftex |
| |
| +@dircategory Individual utilities |
| +@direntry |
| +* time: (time). Run programs and summarize |
| + system resource usage. |
| +@end direntry |
| + |
| @ifinfo |
| This file documents the the GNU @code{time} command for running programs |
| and summarizing the system resources they use. |
| @@ -185,6 +191,10 @@ |
| sys %S |
| @end example |
| |
| +@item -q |
| +@itemx --quiet |
| +Suppress non-zero error code from the executed program. |
| + |
| @item -v |
| @itemx --verbose |
| @cindex format |
| --- time-1.7.orig/time.info |
| +++ time-1.7/time.info |
| @@ -1,5 +1,10 @@ |
| -This is Info file ./time.info, produced by Makeinfo-1.55 from the input |
| -file time.texi. |
| +This is time.info, produced by makeinfo version 4.1 from time.texi. |
| + |
| +INFO-DIR-SECTION Individual utilities |
| +START-INFO-DIR-ENTRY |
| +* time: (time). Run programs and summarize |
| + system resource usage. |
| +END-INFO-DIR-ENTRY |
| |
| This file documents the the GNU `time' command for running programs |
| and summarizing the system resources they use. |
| @@ -31,7 +36,7 @@ |
| |
| * Resource Measurement:: Measuring program resource use. |
| |
| - -- The Detailed Node Listing -- |
| + --- The Detailed Node Listing --- |
| |
| Measuring Program Resource Use |
| |
| @@ -58,14 +63,14 @@ |
| The `time' command runs another program, then displays information |
| about the resources used by that program, collected by the system while |
| the program was running. You can select which information is reported |
| -and the format in which it is shown (*note Setting Format::.), or have |
| +and the format in which it is shown (*note Setting Format::), or have |
| `time' save the information in a file instead of displaying it on the |
| -screen (*note Redirecting::.). |
| +screen (*note Redirecting::). |
| |
| The resources that `time' can report on fall into the general |
| categories of time, memory, and I/O and IPC calls. Some systems do not |
| provide much information about program resource use; `time' reports |
| -unavailable information as zero values (*note Accuracy::.). |
| +unavailable information as zero values (*note Accuracy::). |
| |
| The format of the `time' command is: |
| |
| @@ -132,6 +137,10 @@ |
| user %U |
| sys %S |
| |
| +`-q' |
| +`--quiet' |
| + Suppress non-zero error code from the executed program. |
| + |
| `-v' |
| `--verbose' |
| Use the built-in verbose format, which displays each available |
| @@ -174,7 +183,7 @@ |
| The resource specifiers, which are a superset of those recognized by |
| the `tcsh' builtin `time' command, are listed below. Not all resources |
| are measured by all versions of Unix, so some of the values might be |
| -reported as zero (*note Accuracy::.). |
| +reported as zero (*note Accuracy::). |
| |
| * Menu: |
| |
| @@ -308,11 +317,11 @@ |
| `-o FILE' |
| `--output=FILE' |
| Write the resource use statistics to FILE. By default, this |
| - *overwrites* the file, destroying the file's previous contents. |
| + _overwrites_ the file, destroying the file's previous contents. |
| |
| `-a' |
| `--append' |
| - *Append* the resource use information to the output file instead |
| + _Append_ the resource use information to the output file instead |
| of overwriting it. This option is only useful with the `-o' or |
| `--output' option. |
| |
| @@ -437,7 +446,7 @@ |
| |
| `-a' |
| `--append' |
| - *Append* the resource use information to the output file instead |
| + _Append_ the resource use information to the output file instead |
| of overwriting it. |
| |
| `-f FORMAT' |
| @@ -462,17 +471,17 @@ |
| |
| |
| Tag Table: |
| -Node: Top934 |
| -Node: Resource Measurement1725 |
| -Node: Setting Format3678 |
| -Node: Format String4907 |
| -Node: Time Resources6214 |
| -Node: Memory Resources6844 |
| -Node: I/O Resources7549 |
| -Node: Command Info8747 |
| -Node: Redirecting8964 |
| -Node: Examples9754 |
| -Node: Accuracy12064 |
| -Node: Invoking time13586 |
| +Node: Top1115 |
| +Node: Resource Measurement1908 |
| +Node: Setting Format3858 |
| +Node: Format String5164 |
| +Node: Time Resources6470 |
| +Node: Memory Resources7100 |
| +Node: I/O Resources7805 |
| +Node: Command Info9003 |
| +Node: Redirecting9220 |
| +Node: Examples10010 |
| +Node: Accuracy12320 |
| +Node: Invoking time13842 |
| |
| End Tag Table |
| --- time-1.7.orig/time.html |
| +++ time-1.7/time.html |
| @@ -0,0 +1,1021 @@ |
| +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
| + "http://www.w3.org/TR/html40/loose.dtd"> |
| +<HTML> |
| +<!-- Created on September, 1 2003 by texi2html 1.66 --> |
| +<!-- |
| +Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) |
| + Karl Berry <karl@freefriends.org> |
| + Olaf Bachmann <obachman@mathematik.uni-kl.de> |
| + and many others. |
| +Maintained by: Many creative people <dev@texi2html.cvshome.org> |
| +Send bugs and suggestions to <users@texi2html.cvshome.org> |
| + |
| +--> |
| +<HEAD> |
| +<TITLE>Measuring Program Resource Use</TITLE> |
| + |
| +<META NAME="description" CONTENT="Measuring Program Resource Use"> |
| +<META NAME="keywords" CONTENT="Measuring Program Resource Use"> |
| +<META NAME="resource-type" CONTENT="document"> |
| +<META NAME="distribution" CONTENT="global"> |
| +<META NAME="Generator" CONTENT="texi2html 1.66"> |
| + |
| +</HEAD> |
| + |
| +<BODY LANG="en" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"> |
| + |
| +<A NAME="SEC_Top"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H1>Measuring Program Resource Use</H1> |
| + |
| +<P> |
| + |
| +This file documents the the GNU <CODE>time</CODE> command for running programs |
| +and summarizing the system resources they use. |
| +This is edition 1.7, for version 1.7. |
| +</P> |
| +<P> |
| + |
| +</P> |
| +<TABLE BORDER="0" CELLSPACING="0"> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC1">1. Measuring Program Resource Use</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Measuring program resource use.</TD></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> |
| +</TH></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> -- The Detailed Node Listing --- |
| +</TH></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> |
| +</TH></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Measuring Program Resource Use |
| +</TH></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> |
| +</TH></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC2">1.1 Setting the Output Format</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Selecting the information reported by <CODE>time</CODE>.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC3">1.2 The Format String</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">The information <CODE>time</CODE> can report.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC8">1.3 Redirecting Output</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Writing the information to a file.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC9">1.4 Examples</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Examples of using <CODE>time</CODE>.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC10">1.5 Accuracy</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Limitations on the accuracy of <CODE>time</CODE> output.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Summary of the options to the <CODE>time</CODE> command.</TD></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> |
| +</TH></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">The Format String |
| +</TH></TR> |
| +<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> |
| +</TH></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC4">1.2.1 Time Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC5">1.2.2 Memory Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC6">1.2.3 I/O Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC7">1.2.4 Command Info</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +</TABLE> |
| +<P> |
| + |
| +<HR SIZE=1> |
| +<A NAME="SEC1"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC2"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<A NAME="Resource Measurement"></A> |
| +<H1> 1. Measuring Program Resource Use </H1> |
| +<!--docid::SEC1::--> |
| +<P> |
| + |
| +The <CODE>time</CODE> command runs another program, then displays information |
| +about the resources used by that program, collected by the system while |
| +the program was running. You can select which information is reported |
| +and the format in which it is shown (see section <A HREF="time.html#SEC2">1.1 Setting the Output Format</A>), or have |
| +<CODE>time</CODE> save the information in a file instead of displaying it on the |
| +screen (see section <A HREF="time.html#SEC8">1.3 Redirecting Output</A>). |
| +</P> |
| +<P> |
| + |
| +The resources that <CODE>time</CODE> can report on fall into the general |
| +categories of time, memory, and I/O and IPC calls. Some systems do not |
| +provide much information about program resource use; <CODE>time</CODE> |
| +reports unavailable information as zero values (see section <A HREF="time.html#SEC10">1.5 Accuracy</A>). |
| +</P> |
| +<P> |
| + |
| +The format of the <CODE>time</CODE> command is: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>time [option<small>...</small>] <VAR>command</VAR> [<VAR>arg</VAR><small>...</small>] |
| +</pre></td></tr></table><P> |
| + |
| +<A NAME="IDX1"></A> |
| +<CODE>time</CODE> runs the program <VAR>command</VAR>, with any given arguments |
| +<VAR>arg</VAR><small>...</small>. When <VAR>command</VAR> finishes, <CODE>time</CODE> displays |
| +information about resources used by <VAR>command</VAR>. |
| +</P> |
| +<P> |
| + |
| +Here is an example of using <CODE>time</CODE> to measure the time and other |
| +resources used by running the program <CODE>grep</CODE>: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>eg$ time grep nobody /etc/aliases |
| +nobody:/dev/null |
| +etc-files:nobody |
| +misc-group:nobody |
| +0.07user 0.50system 0:06.69elapsed 8%CPU (0avgtext+489avgdata 324maxresident)k |
| +46inputs+7outputs (43major+251minor)pagefaults 0swaps |
| +</pre></td></tr></table><P> |
| + |
| +Mail suggestions and bug reports for GNU <CODE>time</CODE> to |
| +<CODE>bug-gnu-utils@prep.ai.mit.edu</CODE>. Please include the version of |
| +<CODE>time</CODE>, which you can get by running `<SAMP>time --version</SAMP>', and the |
| +operating system and C compiler you used. |
| +</P> |
| +<P> |
| + |
| +<TABLE BORDER="0" CELLSPACING="0"> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC2">1.1 Setting the Output Format</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Selecting the information reported by <CODE>time</CODE>.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC3">1.2 The Format String</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">The information <CODE>time</CODE> can report.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC8">1.3 Redirecting Output</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Writing the information to a file.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC9">1.4 Examples</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Examples of using <CODE>time</CODE>.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC10">1.5 Accuracy</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Limitations on the accuracy of <CODE>time</CODE> output.</TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Summary of the options to the <CODE>time</CODE> command.</TD></TR> |
| +</TABLE> |
| +<P> |
| + |
| +<A NAME="Setting Format"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC2"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC3"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H2> 1.1 Setting the Output Format </H2> |
| +<!--docid::SEC2::--> |
| +<P> |
| + |
| +<CODE>time</CODE> uses a <EM>format string</EM> to determine which information to |
| +display about the resources used by the command it runs. See section <A HREF="time.html#SEC3">1.2 The Format String</A>, for the interpretation of the format string contents. |
| +</P> |
| +<P> |
| + |
| +You can specify a format string with the command line options listed |
| +below. If no format is specified on the command line, but the |
| +<CODE>TIME</CODE> environment variable is set, its value is used as the format |
| +string. Otherwise, the default format built into <CODE>time</CODE> is used: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k |
| +%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps |
| +</pre></td></tr></table><P> |
| + |
| +The command line options to set the format are: |
| +</P> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>-f <VAR>format</VAR></CODE> |
| +<DD><DT><CODE>--format=<VAR>format</VAR></CODE> |
| +<DD>Use <VAR>format</VAR> as the format string. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-p</CODE> |
| +<DD><DT><CODE>--portability</CODE> |
| +<DD>Use the following format string, for conformance with POSIX standard |
| +1003.2: |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>real %e |
| +user %U |
| +sys %S |
| +</pre></td></tr></table><P> |
| + |
| +</P> |
| +<DT><CODE>-q</CODE> |
| +<DD><DT><CODE>--quiet</CODE> |
| +<DD>Suppress non-zero error code from the executed program. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-v</CODE> |
| +<DD><DT><CODE>--verbose</CODE> |
| +<DD><A NAME="IDX2"></A> |
| +Use the built-in verbose format, which displays each available piece of |
| +information on the program's resource use on its own line, with an |
| +English description of its meaning. |
| +</DL> |
| +<P> |
| + |
| +<A NAME="Format String"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC3"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC2"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC4"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H2> 1.2 The Format String </H2> |
| +<!--docid::SEC3::--> |
| +<P> |
| + |
| +<A NAME="IDX3"></A> |
| +<A NAME="IDX4"></A> |
| +The <EM>format string</EM> controls the contents of the <CODE>time</CODE> output. |
| +It consists of <EM>resource specifiers</EM> and <EM>escapes</EM>, interspersed |
| +with plain text. |
| +</P> |
| +<P> |
| + |
| +A backslash introduces an <EM>escape</EM>, which is translated |
| +into a single printing character upon output. The valid escapes are |
| +listed below. An invalid escape is output as a question mark followed |
| +by a backslash. |
| +</P> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>\t</CODE> |
| +<DD>a tab character |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>\n</CODE> |
| +<DD>a newline |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>\\</CODE> |
| +<DD>a literal backslash |
| +</DL> |
| +<P> |
| + |
| +<CODE>time</CODE> always prints a newline after printing the resource use |
| +information, so normally format strings do not end with a newline |
| +character (or `<SAMP>\n</SAMP>'). |
| +</P> |
| +<P> |
| + |
| +A resource specifier consists of a percent sign followed by another |
| +character. An invalid resource specifier is output as a question mark |
| +followed by the invalid character. Use `<SAMP>%%</SAMP>' to output a literal |
| +percent sign. |
| +</P> |
| +<P> |
| + |
| +The resource specifiers, which are a superset of those recognized by the |
| +<CODE>tcsh</CODE> builtin <CODE>time</CODE> command, are listed below. Not all |
| +resources are measured by all versions of Unix, so some of the values |
| +might be reported as zero (see section <A HREF="time.html#SEC10">1.5 Accuracy</A>). |
| +</P> |
| +<P> |
| + |
| +<TABLE BORDER="0" CELLSPACING="0"> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC4">1.2.1 Time Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC5">1.2.2 Memory Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC6">1.2.3 I/O Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC7">1.2.4 Command Info</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> |
| +</TABLE> |
| +<P> |
| + |
| +<A NAME="Time Resources"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC4"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC3"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC5"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H3> 1.2.1 Time Resources </H3> |
| +<!--docid::SEC4::--> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>E</CODE> |
| +<DD>Elapsed real (wall clock) time used by the process, in |
| +[hours:]minutes:seconds. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>e</CODE> |
| +<DD>Elapsed real (wall clock) time used by the process, in |
| +seconds. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>S</CODE> |
| +<DD>Total number of CPU-seconds used by the system on behalf of the process |
| +(in kernel mode), in seconds. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>U</CODE> |
| +<DD>Total number of CPU-seconds that the process used directly (in user |
| +mode), in seconds. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>P</CODE> |
| +<DD>Percentage of the CPU that this job got. This is just user + system |
| +times divied by the total running time. |
| +</DL> |
| +<P> |
| + |
| +<A NAME="Memory Resources"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC5"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC4"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC6"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H3> 1.2.2 Memory Resources </H3> |
| +<!--docid::SEC5::--> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>M</CODE> |
| +<DD>Maximum resident set size of the process during its lifetime, in |
| +Kilobytes. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>t</CODE> |
| +<DD>Average resident set size of the process, in Kilobytes. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>K</CODE> |
| +<DD>Average total (data+stack+text) memory use of the process, in Kilobytes. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>D</CODE> |
| +<DD>Average size of the process's unshared data area, in Kilobytes. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>p</CODE> |
| +<DD>Average size of the process's unshared stack, in Kilobytes. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>X</CODE> |
| +<DD>Average size of the process's shared text, in Kilobytes. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>Z</CODE> |
| +<DD>System's page size, in bytes. This is a per-system constant, but |
| +varies between systems. |
| +</DL> |
| +<P> |
| + |
| +<A NAME="I/O Resources"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC6"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC5"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC7"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H3> 1.2.3 I/O Resources </H3> |
| +<!--docid::SEC6::--> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>F</CODE> |
| +<DD>Number of major, or I/O-requiring, page faults that occurred while the |
| +process was running. These are faults where the page has actually |
| +migrated out of primary memory. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>R</CODE> |
| +<DD>Number of minor, or recoverable, page faults. These are pages that are |
| +not valid (so they fault) but which have not yet been claimed by other |
| +virtual pages. Thus the data in the page is still valid but the system |
| +tables must be updated. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>W</CODE> |
| +<DD>Number of times the process was swapped out of main memory. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>c</CODE> |
| +<DD>Number of times the process was context-switched involuntarily (because |
| +the time slice expired). |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>w</CODE> |
| +<DD>Number of times that the program was context-switched voluntarily, for |
| +instance while waiting for an I/O operation to complete. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>I</CODE> |
| +<DD>Number of file system inputs by the process. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>O</CODE> |
| +<DD>Number of file system outputs by the process. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>r</CODE> |
| +<DD>Number of socket messages received by the process. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>s</CODE> |
| +<DD>Number of socket messages sent by the process. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>k</CODE> |
| +<DD>Number of signals delivered to the process. |
| +</DL> |
| +<P> |
| + |
| +<A NAME="Command Info"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC7"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC6"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC8"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H3> 1.2.4 Command Info </H3> |
| +<!--docid::SEC7::--> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>C</CODE> |
| +<DD>Name and command line arguments of the command being timed. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>x</CODE> |
| +<DD>Exit status of the command. |
| +</DL> |
| +<P> |
| + |
| +<A NAME="Redirecting"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC8"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC7"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC9"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H2> 1.3 Redirecting Output </H2> |
| +<!--docid::SEC8::--> |
| +<P> |
| + |
| +By default, <CODE>time</CODE> writes the resource use statistics to the |
| +standard error stream. The options below make it write the statistics |
| +to a file instead. Doing this can be useful if the program you're |
| +running writes to the standard error or you're running <CODE>time</CODE> |
| +noninteractively or in the background. |
| +</P> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>-o <VAR>file</VAR></CODE> |
| +<DD><DT><CODE>--output=<VAR>file</VAR></CODE> |
| +<DD>Write the resource use statistics to <VAR>file</VAR>. By default, this |
| +<EM>overwrites</EM> the file, destroying the file's previous contents. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-a</CODE> |
| +<DD><DT><CODE>--append</CODE> |
| +<DD><EM>Append</EM> the resource use information to the output file instead |
| +of overwriting it. This option is only useful with the `<SAMP>-o</SAMP>' or |
| +`<SAMP>--output</SAMP>' option. |
| +</DL> |
| +<P> |
| + |
| +<A NAME="Examples"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC9"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC8"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC10"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H2> 1.4 Examples </H2> |
| +<!--docid::SEC9::--> |
| +<P> |
| + |
| +Run the command `<SAMP>wc /etc/hosts</SAMP>' and show the default information: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>eg$ time wc /etc/hosts |
| + 35 111 1134 /etc/hosts |
| +0.00user 0.01system 0:00.04elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k |
| +1inputs+1outputs (0major+0minor)pagefaults 0swaps |
| +</pre></td></tr></table><P> |
| + |
| +Run the command `<SAMP>ls -Fs</SAMP>' and show just the user, system, and |
| +wall-clock time: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>eg$ time -f "\t%E real,\t%U user,\t%S sys" ls -Fs |
| +total 16 |
| +1 account/ 1 db/ 1 mail/ 1 run/ |
| +1 backups/ 1 emacs/ 1 msgs/ 1 rwho/ |
| +1 crash/ 1 games/ 1 preserve/ 1 spool/ |
| +1 cron/ 1 log/ 1 quotas/ 1 tmp/ |
| + 0:00.03 real, 0.00 user, 0.01 sys |
| +</pre></td></tr></table><P> |
| + |
| +Edit the file `<TT>.bashrc</TT>' and have <CODE>time</CODE> append the elapsed time |
| +and number of signals to the file `<TT>log</TT>', reading the format string |
| +from the environment variable <CODE>TIME</CODE>: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>eg$ export TIME="\t%E,\t%k" # If using bash or ksh |
| +eg$ setenv TIME "\t%E,\t%k" # If using csh or tcsh |
| +eg$ time -a -o log emacs .bashrc |
| +eg$ cat log |
| + 0:16.55, 726 |
| +</pre></td></tr></table><P> |
| + |
| +Run the command `<SAMP>sleep 4</SAMP>' and show all of the information about it |
| +verbosely: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>eg$ time -v sleep 4 |
| + Command being timed: "sleep 4" |
| + User time (seconds): 0.00 |
| + System time (seconds): 0.05 |
| + Percent of CPU this job got: 1% |
| + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:04.26 |
| + Average shared text size (kbytes): 36 |
| + Average unshared data size (kbytes): 24 |
| + Average stack size (kbytes): 0 |
| + Average total size (kbytes): 60 |
| + Maximum resident set size (kbytes): 32 |
| + Average resident set size (kbytes): 24 |
| + Major (requiring I/O) page faults: 3 |
| + Minor (reclaiming a frame) page faults: 0 |
| + Voluntary context switches: 11 |
| + Involuntary context switches: 0 |
| + Swaps: 0 |
| + File system inputs: 3 |
| + File system outputs: 1 |
| + Socket messages sent: 0 |
| + Socket messages received: 0 |
| + Signals delivered: 1 |
| + Page size (bytes): 4096 |
| + Exit status: 0 |
| +</pre></td></tr></table><P> |
| + |
| +<A NAME="Accuracy"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC10"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC9"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC11"> > </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H2> 1.5 Accuracy </H2> |
| +<!--docid::SEC10::--> |
| +<P> |
| + |
| +The elapsed time is not collected atomically with the execution of the |
| +program; as a result, in bizarre circumstances (if the <CODE>time</CODE> |
| +command gets stopped or swapped out in between when the program being |
| +timed exits and when <CODE>time</CODE> calculates how long it took to run), it |
| +could be much larger than the actual execution time. |
| +</P> |
| +<P> |
| + |
| +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. |
| +</P> |
| +<P> |
| + |
| +Most information shown by <CODE>time</CODE> is derived from the <CODE>wait3</CODE> |
| +system call. The numbers are only as good as those returned by |
| +<CODE>wait3</CODE>. Many systems do not measure all of the resources that |
| +<CODE>time</CODE> 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. |
| +</P> |
| +<P> |
| + |
| +On systems that do not have a <CODE>wait3</CODE> call that returns status |
| +information, the <CODE>times</CODE> system call is used instead. It provides |
| +much less information than <CODE>wait3</CODE>, so on those systems <CODE>time</CODE> |
| +reports most of the resources as zero. |
| +</P> |
| +<P> |
| + |
| +The `<SAMP>%I</SAMP>' and `<SAMP>%O</SAMP>' 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 `<SAMP>%I</SAMP>' and `<SAMP>%O</SAMP>' may be |
| +muddled for workstations, especially diskless ones. |
| +</P> |
| +<P> |
| + |
| +<A NAME="Invoking time"></A> |
| +<HR SIZE="6"> |
| +<A NAME="SEC11"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC10"> < </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ > ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H2> 1.6 Running the <CODE>time</CODE> Command </H2> |
| +<!--docid::SEC11::--> |
| +<P> |
| + |
| +The format of the <CODE>time</CODE> command is: |
| +</P> |
| +<P> |
| + |
| +<TABLE><tr><td> </td><td class=example><pre>time [option<small>...</small>] <VAR>command</VAR> [<VAR>arg</VAR><small>...</small>] |
| +</pre></td></tr></table><P> |
| + |
| +<A NAME="IDX5"></A> |
| +<CODE>time</CODE> runs the program <VAR>command</VAR>, with any given arguments |
| +<VAR>arg</VAR><small>...</small>. When <VAR>command</VAR> finishes, <CODE>time</CODE> displays |
| +information about resources used by <VAR>command</VAR> (on the standard error |
| +output, by default). If <VAR>command</VAR> exits with non-zero status or is |
| +terminated by a signal, <CODE>time</CODE> displays a warning message and the |
| +exit status or signal number. |
| +</P> |
| +<P> |
| + |
| +Options to <CODE>time</CODE> must appear on the command line before |
| +<VAR>command</VAR>. Anything on the command line after <VAR>command</VAR> is |
| +passed as arguments to <VAR>command</VAR>. |
| +</P> |
| +<P> |
| + |
| +</P> |
| +<DL COMPACT> |
| +<DT><CODE>-o <VAR>file</VAR></CODE> |
| +<DD><DT><CODE>--output=<VAR>file</VAR></CODE> |
| +<DD>Write the resource use statistics to <VAR>file</VAR>. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-a</CODE> |
| +<DD><DT><CODE>--append</CODE> |
| +<DD><EM>Append</EM> the resource use information to the output file instead |
| +of overwriting it. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-f <VAR>format</VAR></CODE> |
| +<DD><DT><CODE>--format=<VAR>format</VAR></CODE> |
| +<DD>Use <VAR>format</VAR> as the format string. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>--help</CODE> |
| +<DD>Print a summary of the command line options to <CODE>time</CODE> and exit. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-p</CODE> |
| +<DD><DT><CODE>--portability</CODE> |
| +<DD>Use the POSIX format. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-v</CODE> |
| +<DD><DT><CODE>--verbose</CODE> |
| +<DD><A NAME="IDX6"></A> |
| +Use the built-in verbose format. |
| +<P> |
| + |
| +</P> |
| +<DT><CODE>-V</CODE> |
| +<DD><DT><CODE>--version</CODE> |
| +<DD><A NAME="IDX7"></A> |
| +Print the version number of <CODE>time</CODE> and exit. |
| +</DL> |
| +<P> |
| + |
| +<HR SIZE="6"> |
| +<A NAME="SEC_Contents"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H1>Table of Contents</H1> |
| +<BLOCKQUOTE> |
| +<A NAME="TOC1" HREF="time.html#SEC1">1. Measuring Program Resource Use</A> |
| +<BR> |
| +<BLOCKQUOTE> |
| +<A NAME="TOC2" HREF="time.html#SEC2">1.1 Setting the Output Format</A> |
| +<BR> |
| +<A NAME="TOC3" HREF="time.html#SEC3">1.2 The Format String</A> |
| +<BR> |
| +<BLOCKQUOTE> |
| +<A NAME="TOC4" HREF="time.html#SEC4">1.2.1 Time Resources</A> |
| +<BR> |
| +<A NAME="TOC5" HREF="time.html#SEC5">1.2.2 Memory Resources</A> |
| +<BR> |
| +<A NAME="TOC6" HREF="time.html#SEC6">1.2.3 I/O Resources</A> |
| +<BR> |
| +<A NAME="TOC7" HREF="time.html#SEC7">1.2.4 Command Info</A> |
| +<BR> |
| +</BLOCKQUOTE> |
| +<A NAME="TOC8" HREF="time.html#SEC8">1.3 Redirecting Output</A> |
| +<BR> |
| +<A NAME="TOC9" HREF="time.html#SEC9">1.4 Examples</A> |
| +<BR> |
| +<A NAME="TOC10" HREF="time.html#SEC10">1.5 Accuracy</A> |
| +<BR> |
| +<A NAME="TOC11" HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A> |
| +<BR> |
| +</BLOCKQUOTE> |
| +</BLOCKQUOTE> |
| +<HR SIZE=1> |
| +<A NAME="SEC_OVERVIEW"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H1>Short Table of Contents</H1> |
| +<BLOCKQUOTE> |
| +<A NAME="TOC1" HREF="time.html#SEC1">1. Measuring Program Resource Use</A> |
| +<BR> |
| + |
| +</BLOCKQUOTE> |
| +<HR SIZE=1> |
| +<A NAME="SEC_About"></A> |
| +<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
| +<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
| +<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> |
| +</TR></TABLE> |
| +<H1>About this document</H1> |
| +This document was generated |
| +by |
| +using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A> |
| +<P></P> |
| +The buttons in the navigation panels have the following meaning: |
| +<P></P> |
| +<table border = "1"> |
| +<TR> |
| +<TH> Button </TH> |
| +<TH> Name </TH> |
| +<TH> Go to </TH> |
| +<TH> From 1.2.3 go to</TH> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [ < ] </TD> |
| +<TD ALIGN="CENTER"> |
| +Back |
| +</TD> |
| +<TD> |
| +previous section in reading order |
| +</TD> |
| +<TD> |
| +1.2.2 |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [ > ] </TD> |
| +<TD ALIGN="CENTER"> |
| +Forward |
| +</TD> |
| +<TD> |
| +next section in reading order |
| +</TD> |
| +<TD> |
| +1.2.4 |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [ << ] </TD> |
| +<TD ALIGN="CENTER"> |
| +FastBack |
| +</TD> |
| +<TD> |
| +beginning of this chapter or previous chapter |
| +</TD> |
| +<TD> |
| +1 |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [ Up ] </TD> |
| +<TD ALIGN="CENTER"> |
| +Up |
| +</TD> |
| +<TD> |
| +up section |
| +</TD> |
| +<TD> |
| +1.2 |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [ >> ] </TD> |
| +<TD ALIGN="CENTER"> |
| +FastForward |
| +</TD> |
| +<TD> |
| +next chapter |
| +</TD> |
| +<TD> |
| +2 |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [Top] </TD> |
| +<TD ALIGN="CENTER"> |
| +Top |
| +</TD> |
| +<TD> |
| +cover (top) of document |
| +</TD> |
| +<TD> |
| + |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [Contents] </TD> |
| +<TD ALIGN="CENTER"> |
| +Contents |
| +</TD> |
| +<TD> |
| +table of contents |
| +</TD> |
| +<TD> |
| + |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [Index] </TD> |
| +<TD ALIGN="CENTER"> |
| +Index |
| +</TD> |
| +<TD> |
| +concept index |
| +</TD> |
| +<TD> |
| + |
| +</TD> |
| +</TR> |
| +<TR> |
| +<TD ALIGN="CENTER"> |
| + [ ? ] </TD> |
| +<TD ALIGN="CENTER"> |
| +About |
| +</TD> |
| +<TD> |
| +this page |
| +</TD> |
| +<TD> |
| + |
| +</TD> |
| +</TR> |
| +</TABLE> |
| + <P> |
| + where the <STRONG> Example </STRONG> assumes that the current position |
| + is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of |
| + the following structure:</P> |
| + <UL> |
| + <LI> 1. Section One |
| + <UL> |
| + <LI>1.1 Subsection One-One |
| + <UL> |
| + <LI>...</LI> |
| + </UL> |
| + <LI>1.2 Subsection One-Two |
| + <UL> |
| + <LI>1.2.1 Subsubsection One-Two-One</LI> |
| + <LI>1.2.2 Subsubsection One-Two-Two</LI> |
| + <LI>1.2.3 Subsubsection One-Two-Three |
| + <STRONG><== Current Position </STRONG></LI> |
| + <LI>1.2.4 Subsubsection One-Two-Four</LI> |
| + </UL> |
| + </LI> |
| + <LI>1.3 Subsection One-Three |
| + <UL> |
| + <LI>...</LI> |
| + </UL> |
| + </LI> |
| + <LI>1.4 Subsection One-Four</LI> |
| + </UL> |
| + </LI> |
| + </UL> |
| + |
| +<HR SIZE=1> |
| +<BR> |
| +<FONT SIZE="-1"> |
| +This document was generated |
| +by <I>root</I> on <I>September, 1 2003</I> |
| +using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A> |
| +</FONT> |
| + |
| +</BODY> |
| +</HTML> |