• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //  timex: timed execution program  ------------------------------------------//
2 
3 //  Copyright Beman Dawes 2007
4 
5 //  Distributed under the Boost Software License, Version 1.0.
6 //  See http://www.boost.org/LICENSE_1_0.txt
7 
8 //  See http://www.boost.org/libs/timer for documentation.
9 
10 #include <boost/timer/timer.hpp>
11 #include <cstdlib>
12 #include <string>
13 #include <iostream>
14 
main(int argc,char * argv[])15 int main( int argc, char * argv[] )
16 {
17   if ( argc == 1 )
18   {
19     std::cout << "invoke: timex [-v] command [args...]\n"
20       "  command will be executed and timings displayed\n"
21       "  -v option causes command and args to be displayed\n";
22     return 1;
23   }
24 
25   std::string s;
26 
27   bool verbose = false;
28   if ( argc > 1 && *argv[1] == '-' && *(argv[1]+1) == 'v' )
29   {
30     verbose = true;
31     ++argv;
32     --argc;
33   }
34 
35   for ( int i = 1; i < argc; ++i )
36   {
37     if ( i > 1 ) s += ' ';
38     s += argv[i];
39   }
40 
41   if ( verbose )
42     { std::cout << "command: \"" << s.c_str() << "\"\n"; }
43 
44   boost::timer::auto_cpu_timer t(" %ws elapsed wall-clock time\n");
45 
46   return std::system( s.c_str() );
47 }
48