| Index: scons-2.0.1/scons-time.1
|
| ===================================================================
|
| --- scons-2.0.1/scons-time.1 (revision 0)
|
| +++ scons-2.0.1/scons-time.1 (revision 0)
|
| @@ -0,0 +1,1017 @@
|
| +.\" Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
| +.\"
|
| +.\" Permission is hereby granted, free of charge, to any person obtaining
|
| +.\" a copy of this software and associated documentation files (the
|
| +.\" "Software"), to deal in the Software without restriction, including
|
| +.\" without limitation the rights to use, copy, modify, merge, publish,
|
| +.\" distribute, sublicense, and/or sell copies of the Software, and to
|
| +.\" permit persons to whom the Software is furnished to do so, subject to
|
| +.\" the following conditions:
|
| +.\"
|
| +.\" The above copyright notice and this permission notice shall be included
|
| +.\" in all copies or substantial portions of the Software.
|
| +.\"
|
| +.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
| +.\" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
| +.\" WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| +.\" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
| +.\" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
| +.\" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
| +.\" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| +.\"
|
| +.\" doc/man/scons-time.1 5134 2010/08/16 23:02:40 bdeegan
|
| +.\"
|
| +.\" ES - Example Start - indents and turns off line fill
|
| +.de ES
|
| +.RS
|
| +.nf
|
| +..
|
| +.\" EE - Example End - ends indent and turns line fill back on
|
| +.de EE
|
| +.RE
|
| +.fi
|
| +..
|
| +'\"==========================================================================
|
| +.de SF
|
| +.B scons-time func
|
| +[\fB-h\fR]
|
| +[\fB--chdir=\fIDIR\fR]
|
| +[\fB-f \fIFILE\fR]
|
| +[\fB--fmt=\fIFORMAT\fR]
|
| +[\fB--func=\fINAME\fR]
|
| +[\fB-p \fISTRING\fR]
|
| +[\fB-t \fINUMBER\fR]
|
| +[\fB--title= TITLE\fR]
|
| +[\fIARGUMENTS\fR]
|
| +..
|
| +'\"--------------------------------------------------------------------------
|
| +.de SY
|
| +.B scons-time mem
|
| +[\fB-h\fR]
|
| +[\fB--chdir=\fIDIR\fR]
|
| +[\fB-f \fIFILE\fR]
|
| +[\fB--fmt=\fIFORMAT\fR]
|
| +[\fB-p \fISTRING\fR]
|
| +[\fB--stage=\fISTAGE\fR]
|
| +[\fB-t \fINUMBER\fR]
|
| +[\fB--title=\fITITLE\fR]
|
| +[\fIARGUMENTS\fR]
|
| +..
|
| +'\"--------------------------------------------------------------------------
|
| +.de SO
|
| +.B scons-time obj
|
| +[\fB-h\fR]
|
| +[\fB--chdir=\fIDIR\fR]
|
| +[\fB-f \fIFILE\fR]
|
| +[\fB--fmt=\fIFORMAT\fR]
|
| +[\fB-p \fISTRING\fR]
|
| +[\fB--stage=\fISTAGE\fR]
|
| +[\fB-t \fINUMBER\fR]
|
| +[\fB--title=\fITITLE\fR]
|
| +[\fIARGUMENTS\fR]
|
| +..
|
| +'\"--------------------------------------------------------------------------
|
| +.de SR
|
| +.B scons-time run
|
| +[\fB-hnqv\fR]
|
| +[\fB--aegis=\fIPROJECT\fR]
|
| +[\fB-f \fIFILE\fR]
|
| +[\fB--number=\fINUMBER\fR]
|
| +[\fB--outdir=\fIOUTDIR\fR]
|
| +[\fB-p \fISTRING\fR]
|
| +[\fB--python=\fIPYTHON\fR]
|
| +[\fB-s \fIDIR\fR]
|
| +[\fB--scons=\fISCONS\fR]
|
| +[\fB--svn=\fIURL\fR]
|
| +[\fIARGUMENTS\fR]
|
| +..
|
| +'\"--------------------------------------------------------------------------
|
| +.de ST
|
| +.B scons-time time
|
| +[\fB-h\fR]
|
| +[\fB--chdir=\fIDIR\fR]
|
| +[\fB-f \fIFILE\fR]
|
| +[\fB--fmt=\fIFORMAT\fR]
|
| +[\fB-p \fISTRING\fR]
|
| +[\fB-t \fINUMBER\fR]
|
| +[\fB--title=\fITITLE\fR]
|
| +[\fB--which=\fIWHICH\fR]
|
| +[\fIARGUMENTS\fR]
|
| +..
|
| +.TH SCONS-TIME 1 "August 2010"
|
| +.SH NAME
|
| +scons-time \- generate and display SCons timing information
|
| +'\"==========================================================================
|
| +.SH SYNOPSIS
|
| +.B scons-time
|
| +.IR subcommand
|
| +[
|
| +.IR options ...
|
| +]
|
| +[
|
| +.IR arguments ...
|
| +]
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "Generating Timing Information"
|
| +.SR
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "Extracting Function Timings"
|
| +.SF
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "Extracting Memory Statistics"
|
| +.SY
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "Extracting Object Counts"
|
| +.SO
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "Extracting Execution Times"
|
| +.ST
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "Help Text"
|
| +.B scons-time help
|
| +.I SUBCOMMAND
|
| +[...]
|
| +'\"==========================================================================
|
| +.SH DESCRIPTION
|
| +The
|
| +.B scons-time
|
| +command runs an SCons configuration
|
| +through a standard set of profiled timings
|
| +and can extract and graph information from the
|
| +resulting profiles and log files of those timings.
|
| +The action to be performed by the
|
| +.B scons-time
|
| +script is specified
|
| +by a subcommand, the first argument on the command line.
|
| +See the
|
| +.B SUBCOMMANDS
|
| +section below for information about the operation
|
| +of specific subcommands.
|
| +.P
|
| +The basic way to use
|
| +.B scons-time
|
| +is to run the
|
| +.B scons-time run
|
| +subcommand
|
| +(possibly multiple times)
|
| +to generate profile and log file output,
|
| +and then use one of the other
|
| +subcommands to display the results
|
| +captured in the profiles and log files
|
| +for a particular kind of information:
|
| +function timings
|
| +(the
|
| +.B scons-time func
|
| +subcommand),
|
| +total memory used
|
| +(the
|
| +.B scons-time mem
|
| +subcommand),
|
| +object counts
|
| +(the
|
| +.B scons-time obj
|
| +subcommand)
|
| +and overall execution time
|
| +(the
|
| +.B scons-time time
|
| +subcommand).
|
| +Options exist to place and find the
|
| +profiles and log files in separate directories,
|
| +to generate the output in a format suitable
|
| +for graphing with the
|
| +.BR gnuplot (1)
|
| +program,
|
| +and so on.
|
| +.P
|
| +There are two basic ways the
|
| +.B scons-time run
|
| +subcommand
|
| +is intended to be used
|
| +to gather timing statistics
|
| +for a configuration.
|
| +One is to use the
|
| +.B --svn=
|
| +option to test a configuration against
|
| +a list of revisions from the SCons Subversion repository.
|
| +This will generate a profile and timing log file
|
| +for every revision listed with the
|
| +.B --number=
|
| +option,
|
| +and can be used to look at the
|
| +impact of commited changes to the
|
| +SCons code base on a particular
|
| +configuration over time.
|
| +.P
|
| +The other way is to profile incremental changes to a
|
| +local SCons code base during a development cycle--that is,
|
| +to look at the performance impact of changes
|
| +you're making in the local tree.
|
| +In this mode,
|
| +you run the
|
| +.B scons-time run
|
| +subcommand
|
| +.I without
|
| +the
|
| +.B --svn=
|
| +option,
|
| +in which case it simply looks in the profile/log file output directory
|
| +(the current directory by default)
|
| +and automatically figures out the
|
| +.I next
|
| +run number for the output profile and log file.
|
| +Used in this way,
|
| +the development cycle goes something like:
|
| +make a change to SCons;
|
| +run
|
| +.B scons-time run
|
| +to profile it against a specific configuration;
|
| +make another change to SCons;
|
| +run
|
| +.B scons-time run
|
| +again to profile it;
|
| +etc.
|
| +'\"==========================================================================
|
| +.SH OPTIONS
|
| +The
|
| +.B scons-time
|
| +command only supports a few global options:
|
| +.TP
|
| +-h, --help
|
| +Displays the global help text and exits,
|
| +identical to the
|
| +.B scons-time help
|
| +subcommand.
|
| +.TP
|
| +-V, --version
|
| +Displays the
|
| +.B scons-time
|
| +version and exits.
|
| +.P
|
| +Most functionality is controlled by options
|
| +to the individual subcommands.
|
| +See the next section for information
|
| +about individual subcommand options.
|
| +'\"==========================================================================
|
| +.SH SUBCOMMANDS
|
| +The
|
| +.B scons-time
|
| +command supports the following
|
| +individual subcommands.
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "The func Subcommand"
|
| +.SF
|
| +.P
|
| +The
|
| +.B scons-time func
|
| +subcommand displays timing information
|
| +for a specific Python function within SCons.
|
| +By default, it extracts information about the
|
| +.BR _main ()
|
| +function,
|
| +which includes the Python profiler timing
|
| +for all of SCons.
|
| +.P
|
| +The
|
| +.B scons-time func
|
| +subcommand extracts function timing information
|
| +from all the specified file arguments,
|
| +which should be Python profiler output files.
|
| +(Normally, these would be
|
| +.B *.prof
|
| +files generated by the
|
| +.B scons-time run
|
| +subcommand,
|
| +but they can actually be generated
|
| +by any Python profiler invocation.)
|
| +All file name arguments will be
|
| +globbed for on-disk files.
|
| +.P
|
| +If no arguments are specified,
|
| +then function timing information
|
| +will be extracted from all
|
| +.B *.prof
|
| +files,
|
| +or the subset of them
|
| +with a prefix specified by the
|
| +.B -p
|
| +option.
|
| +.P
|
| +Options include:
|
| +.TP
|
| +-C DIRECTORY, --chdir=DIRECTORY
|
| +Changes to the specified
|
| +.I DIRECTORY
|
| +before looking for the specified files
|
| +(or files that match the specified patterns).
|
| +.TP
|
| +-f FILE, --file=FILE
|
| +Reads configuration information from the specified
|
| +.IR FILE .
|
| +.TP
|
| +-fmt=FORMAT, --format=FORMAT
|
| +Reports the output in the specified
|
| +.IR FORMAT .
|
| +The formats currently supported are
|
| +.B ascii
|
| +(the default)
|
| +and
|
| +.BR gnuplot .
|
| +.TP
|
| +--func=NAME
|
| +Extracts timings for the specified function
|
| +.IR NAME .
|
| +The default is to report cumulative timings for the
|
| +.BR _main ()
|
| +function,
|
| +which contains the entire SCons run.
|
| +.TP
|
| +-h, --help
|
| +Displays help text for the
|
| +.B scons-time func
|
| +subcommand.
|
| +.TP
|
| +-p STRING, --prefix=STRING
|
| +Specifies the prefix string for profiles
|
| +from which to extract function timing information.
|
| +This will be used to search for profiles
|
| +if no arguments are specified on the command line.
|
| +.TP
|
| +-t NUMBER, --tail=NUMBER
|
| +Only extracts function timings from the last
|
| +.I NUMBER
|
| +files.
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "The help Subcommand"
|
| +.B scons-time help
|
| +.I SUBCOMMAND
|
| +[...]
|
| +The
|
| +.B help
|
| +subcommand prints help text for any
|
| +other subcommands listed as later arguments on the command line.
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "The mem Subcommand"
|
| +.SY
|
| +.P
|
| +The
|
| +.B scons-time mem
|
| +subcommand displays how much memory SCons uses.
|
| +.P
|
| +The
|
| +.B scons-time mem
|
| +subcommand extracts memory use information
|
| +from all the specified file arguments,
|
| +which should be files containing output from
|
| +running SCons with the
|
| +.B --debug=memory
|
| +option.
|
| +(Normally, these would be
|
| +.B *.log
|
| +files generated by the
|
| +.B scons-time run
|
| +subcommand.)
|
| +All file name arguments will be
|
| +globbed for on-disk files.
|
| +.P
|
| +If no arguments are specified,
|
| +then memory information
|
| +will be extracted from all
|
| +.B *.log
|
| +files,
|
| +or the subset of them
|
| +with a prefix specified by the
|
| +.B -p
|
| +option.
|
| +.P
|
| +.TP
|
| +-C DIR, --chdir=DIR
|
| +Changes to the specified
|
| +.I DIRECTORY
|
| +before looking for the specified files
|
| +(or files that match the specified patterns).
|
| +.TP
|
| +-f FILE, --file=FILE
|
| +Reads configuration information from the specified
|
| +.IR FILE .
|
| +.TP
|
| +-fmt=FORMAT, --format=FORMAT
|
| +Reports the output in the specified
|
| +.IR FORMAT .
|
| +The formats currently supported are
|
| +.B ascii
|
| +(the default)
|
| +and
|
| +.BR gnuplot .
|
| +.TP
|
| +-h, --help
|
| +Displays help text for the
|
| +.B scons-time mem
|
| +subcommand.
|
| +.TP
|
| +-p STRING, --prefix=STRING
|
| +Specifies the prefix string for log files
|
| +from which to extract memory usage information.
|
| +This will be used to search for log files
|
| +if no arguments are specified on the command line.
|
| +.TP
|
| +--stage=STAGE
|
| +Prints the memory used at the end of the specified
|
| +.IR STAGE :
|
| +.B pre-read
|
| +(before the SConscript files are read),
|
| +.B post-read ,
|
| +(after the SConscript files are read),
|
| +.B pre-build
|
| +(before any targets are built)
|
| +or
|
| +.B post-build
|
| +(after any targets are built).
|
| +If no
|
| +.B --stage
|
| +option is specified,
|
| +the default behavior is
|
| +.BR post-build ,
|
| +which reports the final amount of memory
|
| +used by SCons during each run.
|
| +.TP
|
| +-t NUMBER, --tail=NUMBER
|
| +Only reports memory statistics from the last
|
| +.I NUMBER
|
| +files.
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "The obj Subcommand"
|
| +.SO
|
| +.P
|
| +The
|
| +.B scons-time obj
|
| +subcommand displays how many objects of a specific named type
|
| +are created by SCons.
|
| +.P
|
| +The
|
| +.B scons-time obj
|
| +subcommand extracts object counts
|
| +from all the specified file arguments,
|
| +which should be files containing output from
|
| +running SCons with the
|
| +.B --debug=count
|
| +option.
|
| +(Normally, these would be
|
| +.B *.log
|
| +files generated by the
|
| +.B scons-time run
|
| +subcommand.)
|
| +All file name arguments will be
|
| +globbed for on-disk files.
|
| +.P
|
| +If no arguments are specified,
|
| +then object counts
|
| +will be extracted from all
|
| +.B *.log
|
| +files,
|
| +or the subset of them
|
| +with a prefix specified by the
|
| +.B -p
|
| +option.
|
| +.TP
|
| +-C DIR, --chdir=DIR
|
| +Changes to the specified
|
| +.I DIRECTORY
|
| +before looking for the specified files
|
| +(or files that match the specified patterns).
|
| +.TP
|
| +-f FILE, --file=FILE
|
| +Reads configuration information from the specified
|
| +.IR FILE .
|
| +.TP
|
| +-fmt=FORMAT, --format=FORMAT
|
| +Reports the output in the specified
|
| +.IR FORMAT .
|
| +The formats currently supported are
|
| +.B ascii
|
| +(the default)
|
| +and
|
| +.BR gnuplot .
|
| +.TP
|
| +-h, --help
|
| +Displays help text for the
|
| +.B scons-time obj
|
| +subcommand.
|
| +.TP
|
| +-p STRING, --prefix=STRING
|
| +Specifies the prefix string for log files
|
| +from which to extract object counts.
|
| +This will be used to search for log files
|
| +if no arguments are specified on the command line.
|
| +.TP
|
| +--stage=STAGE
|
| +Prints the object count at the end of the specified
|
| +.IR STAGE :
|
| +.B pre-read
|
| +(before the SConscript files are read),
|
| +.B post-read ,
|
| +(after the SConscript files are read),
|
| +.B pre-build
|
| +(before any targets are built)
|
| +or
|
| +.B post-build
|
| +(after any targets are built).
|
| +If no
|
| +.B --stage
|
| +option is specified,
|
| +the default behavior is
|
| +.BR post-build ,
|
| +which reports the final object count during each run.
|
| +.TP
|
| +-t NUMBER, --tail=NUMBER
|
| +Only reports object counts from the last
|
| +.I NUMBER
|
| +files.
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "The run Subcommand"
|
| +.SR
|
| +The
|
| +.B scons-time run
|
| +subcommand is the basic subcommand
|
| +for profiling a specific configuration
|
| +against a version of SCons.
|
| +.P
|
| +The configuration to be tested
|
| +is specified as a list of files
|
| +or directories that will be unpacked or copied
|
| +into a temporary directory
|
| +in which SCons will be invoked.
|
| +The
|
| +.B scons-time run
|
| +subcommand understands file suffixes like
|
| +.BR .tar ,
|
| +.BR .tar.gz ,
|
| +.BR .tgz
|
| +and
|
| +.BR .zip
|
| +and will unpack their contents into a temporary directory.
|
| +If more than one argument is specified,
|
| +each one will be unpacked or copied
|
| +into the temporary directory "on top of"
|
| +the previous archives or directories,
|
| +so the expectation is that multiple
|
| +specified archives share the same directory layout.
|
| +.P
|
| +Once the file or directory arguments are unpacked or
|
| +copied to the temporary directory,
|
| +the
|
| +.B scons-time run
|
| +subcommand runs the
|
| +requested version of SCons
|
| +against the configuration
|
| +three times:
|
| +.TP
|
| +Startup
|
| +SCons is run with the
|
| +.B --help
|
| +option so that just the SConscript files are read,
|
| +and then the default help text is printed.
|
| +This profiles just the perceived "overhead" of starting up SCons
|
| +and processing the SConscript files.
|
| +.TP
|
| +Full build
|
| +SCons is run to build everything specified in the configuration.
|
| +Specific targets to be passed in on the command l ine
|
| +may be specified by the
|
| +.B targets
|
| +keyword in a configuration file; see below for details.
|
| +.TP
|
| +Rebuild
|
| +SCons is run again on the same just-built directory.
|
| +If the dependencies in the SCons configuration are correct,
|
| +this should be an up-to-date, "do nothing" rebuild.
|
| +.P
|
| +Each invocation captures the output log file and a profile.
|
| +.P
|
| +The
|
| +.B scons-time run
|
| +subcommand supports the following options:
|
| +.TP
|
| +--aegis=PROJECT
|
| +Specifies the Aegis
|
| +.I PROJECT
|
| +from which the
|
| +version(s) of
|
| +.B scons
|
| +being timed will be extracted.
|
| +When
|
| +.B --aegis
|
| +is specified, the
|
| +.BI --number= NUMBER
|
| +option specifies delta numbers
|
| +that will be tested.
|
| +Output from each invocation run will be placed in file
|
| +names that match the Aegis delta numbers.
|
| +If the
|
| +.B --number=
|
| +option is not specified,
|
| +then the default behavior is to time the
|
| +tip of the specified
|
| +.IR PROJECT .
|
| +.TP
|
| +-f FILE, --file=FILE
|
| +Reads configuration information from the specified
|
| +.IR FILE .
|
| +This often provides a more convenient way to specify and
|
| +collect parameters associated with a specific timing configuration
|
| +than specifying them on the command line.
|
| +See the
|
| +.B CONFIGURATION FILE
|
| +section below
|
| +for information about the configuration file parameters.
|
| +.TP
|
| +-h, --help
|
| +Displays help text for the
|
| +.B scons-time run
|
| +subcommand.
|
| +.TP
|
| +-n, --no-exec
|
| +Do not execute commands,
|
| +just printing the command-line equivalents of what would be executed.
|
| +Note that the
|
| +.B scons-time
|
| +script actually executes its actions in Python,
|
| +where possible,
|
| +for portability.
|
| +The commands displayed are UNIX
|
| +.I equivalents
|
| +of what it's doing.
|
| +.TP
|
| +--number=NUMBER
|
| +Specifies the run number to be used in the names of
|
| +the log files and profile outputs generated by this run.
|
| +.IP
|
| +When used in conjuction with the
|
| +.BI --aegis= PROJECT
|
| +option,
|
| +.I NUMBER
|
| +specifies one or more comma-separated Aegis delta numbers
|
| +that will be retrieved automatically from the specified Aegis
|
| +.IR PROJECT .
|
| +.IP
|
| +When used in conjuction with the
|
| +.BI --svn= URL
|
| +option,
|
| +.I NUMBER
|
| +specifies one or more comma-separated Subversion revision numbers
|
| +that will be retrieved automatically from the Subversion
|
| +repository at the specified
|
| +.IR URL .
|
| +Ranges of delta or revision numbers
|
| +may be specified be separating two numbers
|
| +with a hyphen
|
| +.RB ( \- ).
|
| +.P
|
| +Example:
|
| +.ES
|
| +% scons-time run --svn=http://scons.tigris.org/svn/trunk --num=1247,1249-1252 .
|
| +.EE
|
| +.TP
|
| +-p STRING, --prefix=STRING
|
| +Specifies the prefix string to be used for all of the log files
|
| +and profiles generated by this run.
|
| +The default is derived from the first
|
| +specified argument:
|
| +if the first argument is a directory,
|
| +the default prefix is the name of the directory;
|
| +if the first argument is an archive
|
| +(tar or zip file),
|
| +the default prefix is the the base name of the archive,
|
| +that is, what remains after stripping the archive suffix
|
| +.RB ( .tgz ", " .tar.gz " or " .zip ).
|
| +.TP
|
| +--python=PYTHON
|
| +Specifies a path to the Python executable to be used
|
| +for the timing runs.
|
| +The default is to use the same Python executable that
|
| +is running the
|
| +.B scons-time
|
| +command itself.
|
| +.TP
|
| +-q, --quiet
|
| +Suppresses display of the command lines being executed.
|
| +.TP
|
| +-s DIR, --subdir=DIR
|
| +Specifies the name of directory or subdirectory
|
| +from which the commands should be executed.
|
| +The default is XXX
|
| +.TP
|
| +--scons=SCONS
|
| +Specifies a path to the SCons script to be used
|
| +for the timing runs.
|
| +The default is XXX
|
| +.TP
|
| +--svn=URL, --subversion=URL
|
| +Specifies the
|
| +.I URL
|
| +of the Subversion repository from which the
|
| +version(s) of
|
| +.B scons
|
| +being timed will be extracted.
|
| +When
|
| +.B --svn
|
| +is specified, the
|
| +.BI --number= NUMBER
|
| +option specifies revision numbers
|
| +that will be tested.
|
| +Output from each invocation run will be placed in file
|
| +names that match the Subversion revision numbers.
|
| +If the
|
| +.B --number=
|
| +option is not specified,
|
| +then the default behavior is to time the
|
| +.B HEAD
|
| +of the specified
|
| +.IR URL .
|
| +.TP
|
| +-v, --verbose
|
| +Displays the output from individual commands to the screen
|
| +(in addition to capturing the output in log files).
|
| +'\"--------------------------------------------------------------------------
|
| +.SS "The time Subcommand"
|
| +.ST
|
| +.P
|
| +The
|
| +.B scons-time time
|
| +subcommand displays SCons execution times
|
| +as reported by the
|
| +.B scons --debug=time
|
| +option.
|
| +.P
|
| +The
|
| +.B scons-time time
|
| +subcommand extracts SCons timing
|
| +from all the specified file arguments,
|
| +which should be files containing output from
|
| +running SCons with the
|
| +.B --debug=time
|
| +option.
|
| +(Normally, these would be
|
| +.B *.log
|
| +files generated by the
|
| +.B scons-time run
|
| +subcommand.)
|
| +All file name arguments will be
|
| +globbed for on-disk files.
|
| +.P
|
| +If no arguments are specified,
|
| +then execution timings
|
| +will be extracted from all
|
| +.B *.log
|
| +files,
|
| +or the subset of them
|
| +with a prefix specified by the
|
| +.B -p
|
| +option.
|
| +.TP
|
| +-C DIR, --chdir=DIR
|
| +Changes to the specified
|
| +.I DIRECTORY
|
| +before looking for the specified files
|
| +(or files that match the specified patterns).
|
| +.TP
|
| +-f FILE, --file=FILE
|
| +Reads configuration information from the specified
|
| +.IR FILE .
|
| +.TP
|
| +-fmt=FORMAT, --format=FORMAT
|
| +Reports the output in the specified
|
| +.IR FORMAT .
|
| +The formats currently supported are
|
| +.B ascii
|
| +(the default)
|
| +and
|
| +.BR gnuplot .
|
| +.TP
|
| +-h, --help
|
| +Displays help text for the
|
| +.B scons-time time
|
| +subcommand.
|
| +.TP
|
| +-p STRING, --prefix=STRING
|
| +Specifies the prefix string for log files
|
| +from which to extract execution timings.
|
| +This will be used to search for log files
|
| +if no arguments are specified on the command line.
|
| +.TP
|
| +-t NUMBER, --tail=NUMBER
|
| +Only reports object counts from the last
|
| +.I NUMBER
|
| +files.
|
| +.TP
|
| +--which=WHICH
|
| +Prints the execution time for the specified
|
| +.IR WHICH
|
| +value:
|
| +.B total
|
| +(the total execution time),
|
| +.B SConscripts
|
| +(total execution time for the SConscript files themselves),
|
| +.B SCons
|
| +(exectuion time in SCons code itself)
|
| +or
|
| +.B commands
|
| +(execution time of the commands and other actions
|
| +used to build targets).
|
| +If no
|
| +.B --which
|
| +option is specified,
|
| +the default behavior is
|
| +.BR total ,
|
| +which reports the total execution time for each run.
|
| +'\"==========================================================================
|
| +.SH CONFIGURATION FILE
|
| +Various
|
| +.B scons-time
|
| +subcommands can read information from a specified
|
| +configuration file when passed the
|
| +.B \-f
|
| +or
|
| +.B \--file
|
| +options.
|
| +The configuration file is actually executed as a Python script.
|
| +Setting Python variables in the configuration file
|
| +controls the behavior of the
|
| +.B scons-time
|
| +script more conveniently than having to specify
|
| +command-line options or arguments for every run,
|
| +and provides a handy way to "shrink-wrap"
|
| +the necessary information for producing (and reporting)
|
| +consistent timing runs for a given configuration.
|
| +.TP
|
| +.B aegis
|
| +The Aegis executable for extracting deltas.
|
| +The default is simply
|
| +.BR aegis .
|
| +.TP
|
| +.B aegis_project
|
| +The Aegis project from which deltas should be extracted.
|
| +The default is whatever is specified
|
| +with the
|
| +.B --aegis=
|
| +command-line option.
|
| +.TP
|
| +.B archive_list
|
| +A list of archives (files or directories)
|
| +that will be copied to the temporary directory
|
| +in which SCons will be invoked.
|
| +.BR .tar ,
|
| +.BR .tar.gz ,
|
| +.BR .tgz
|
| +and
|
| +.BR .zip
|
| +files will have their contents unpacked in
|
| +the temporary directory.
|
| +Directory trees and files will be copied as-is.
|
| +.TP
|
| +.B initial_commands
|
| +A list of commands that will be executed
|
| +before the actual timed
|
| +.B scons
|
| +runs.
|
| +This can be used for commands that are necessary
|
| +to prepare the source tree\-for example,
|
| +creating a configuration file
|
| +that should not be part of the timed run.
|
| +.TP
|
| +.B key_location
|
| +The location of the key on Gnuplot graphing information
|
| +generated with the
|
| +.BR --format=gnuplot
|
| +option.
|
| +The default is
|
| +.BR "bottom left" .
|
| +.TP
|
| +.B prefix
|
| +The file name prefix to be used when
|
| +running or extracting timing for this configuration.
|
| +.TP
|
| +.B python
|
| +The path name of the Python executable
|
| +to be used when running or extracting information
|
| +for this configuration.
|
| +The default is the same version of Python
|
| +used to run the SCons
|
| +.TP
|
| +.B scons
|
| +The path name of the SCons script to be used
|
| +when running or extracting information
|
| +for this configuration.
|
| +The default is simply
|
| +.BR scons .
|
| +.TP
|
| +.B scons_flags
|
| +The
|
| +.B scons
|
| +flags used when running SCons to collect timing information.
|
| +The default value is
|
| +.BR "--debug=count --debug=memory --debug=time --debug=memoizer" .
|
| +.TP
|
| +.B scons_lib_dir
|
| +.TP
|
| +.B scons_wrapper
|
| +.TP
|
| +.B startup_targets
|
| +.TP
|
| +.B subdir
|
| +The subdirectory of the project into which the
|
| +.B scons-time
|
| +script should change
|
| +before executing the SCons commands to time.
|
| +.TP
|
| +.B subversion_url
|
| +The Subversion URL from
|
| +.TP
|
| +.B svn
|
| +The subversion executable used to
|
| +check out revisions of SCons to be timed.
|
| +The default is simple
|
| +.BR svn .
|
| +.TP
|
| +.B svn_co_flag
|
| +.TP
|
| +.B tar
|
| +.TP
|
| +.B targets
|
| +A string containing the targets that should be added to
|
| +the command line of every timed
|
| +.B scons
|
| +run.
|
| +This can be used to restrict what's being timed to a
|
| +subset of the full build for the configuration.
|
| +.TP
|
| +.B targets0
|
| +.TP
|
| +.B targets1
|
| +.TP
|
| +.B targets2
|
| +.TP
|
| +.B title
|
| +.TP
|
| +.B unzip
|
| +.TP
|
| +.B verbose
|
| +.TP
|
| +.B vertical_bars
|
| +'\"--------------------------------------------------------------------------
|
| +.SS Example
|
| +Here is an example
|
| +.B scons-time
|
| +configuration file
|
| +for a hypothetical sample project:
|
| +.P
|
| +.ES
|
| +# The project doesn't use SCons natively (yet), so we're
|
| +# timing a separate set of SConscript files that we lay
|
| +# on top of the vanilla unpacked project tarball.
|
| +arguments = ['project-1.2.tgz', 'project-SConscripts.tar']
|
| +
|
| +# The subdirectory name contains the project version number,
|
| +# so tell scons-time to chdir there before building.
|
| +subdir = 'project-1.2'
|
| +
|
| +# Set the prefix so output log files and profiles are named:
|
| +# project-000-[012].{log,prof}
|
| +# project-001-[012].{log,prof}
|
| +# etc.
|
| +prefix = 'project'
|
| +
|
| +# The SConscript files being tested don't do any SConf
|
| +# configuration, so run their normal ./configure script
|
| +# before we invoke SCons.
|
| +initial_commands = [
|
| + './configure',
|
| +]
|
| +
|
| +# Only time building the bin/project executable.
|
| +targets = 'bin/project'
|
| +
|
| +# Time against SCons revisions of the branches/core branch
|
| +subversion_url = 'http://scons.tigris.org/svn/scons/branches/core'
|
| +.EE
|
| +'\"==========================================================================
|
| +.SH ENVIRONMENT
|
| +The
|
| +.B scons-time
|
| +script uses the following environment variables:
|
| +.TP
|
| +.B PRESERVE
|
| +If this value is set,
|
| +the
|
| +.B scons-time
|
| +script will
|
| +.I not
|
| +remove the temporary directory or directories
|
| +in which it builds the specified configuration
|
| +or downloads a specific version of SCons.
|
| +'\"==========================================================================
|
| +.SH "SEE ALSO"
|
| +.BR gnuplot (1),
|
| +.BR scons (1)
|
| +
|
| +.SH AUTHORS
|
| +Steven Knight <knight at baldmt dot com>
|
|
|