\(\newcommand{\W}[1]{ \; #1 \; }\) \(\newcommand{\R}[1]{ {\rm #1} }\) \(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} }\) \(\newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} }\) \(\newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} }\) \(\newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }\)
time_test¶
View page sourceDetermine Amount of Time to Execute a Test¶
Syntax¶
include <cppad/utility/time_test.hpp>
time_test
( test_fun , time_min )time_test
( test_fun , time_min , test_size )time_test
( test_fun , time_min , test_size , repeat_out )Purpose¶
The time_test
function executes a timing test
and reports the amount of wall clock time for execution.
Motivation¶
It is important to separate small calculation units
and test them individually.
This way individual changes can be tested in the context of the
routine that they are in.
On many machines, accurate timing of a very short execution
sequences is not possible.
In addition,
there may be set up and tear down time for a test that
we do not really want included in the timing.
For this reason time_test
automatically determines how many times to
repeat the section of the test that we wish to time.
Include¶
The file cppad/utility/time_test.hpp
defines the
time_test
function.
This file is included by cppad/cppad.hpp
and it can also be included separately with out the rest of
the CppAD
routines.
test_fun¶
The time_test
argument test_fun is a function,
or function object.
In the case where test_size is not present,
test_fun supports the syntax
test_fun ( repeat )
In the case where test_size is present, test_fun supports the syntax
test_fun ( size , repeat )
In either case, the return value for test_fun is void
.
size¶
If the argument size is present, it has prototype
size_t
size
and is equal to the test_size argument to time_test
.
repeat¶
The test_fun argument repeat has prototype
size_t
repeat
It specifies the number of times to repeat the test.
time_min¶
The argument time_min has prototype
double
time_min
It specifies the minimum amount of time in seconds that the repeats of test_fun routine should take. The repeat argument to test_fun is increased until this amount of execution time (or more) is reached.
test_size¶
If this argument is present, it argument has prototype
size_t
test_size
In this case test_size will be present, and have the same value, in each call to test_fun .
repeat_out¶
If this argument is present, it has prototype
size_t&
repeat_out
This input value of this argument does not matter. Upon return, it is the value of repeat that corresponds to the return value time ; i.e., the total time for the repeats of the test is
total_time = repeat_out * time
time¶
The return value time has prototype
double
time
and is the number of wall clock seconds that it took to execute the repeats of test_fun divided by the value used for repeat .
Timing¶
The routine elapsed_seconds will be used to determine the amount of time it took to execute the test.
Example¶
The routine time_test.cpp is an example and test
of time_test
.