// =====================================================================
//  $Id: timer.cc,v 1.4 2003/10/06 04:03:39 goiwai Exp $
//  $Name: CLDAQ-1-14-03 $
//  $Log: timer.cc,v $
//  Revision 1.4  2003/10/06 04:03:39  goiwai
//  TArgumentを使用するように全てのプログラムを修整しました.
//
//  Revision 1.3  2003/07/30 16:21:39  goiwai
//  ファイルにコミットログをつけることにしました.
//
// =====================================================================
#include "TSystemTimer.hh"
#include "TBenchmark.hh"
#include "TArgument.hh"

static Tvoid CPUconsume();

int main( int argc, char** argv, char** envv )
{
  TArgument arg( argc, argv );

  TBenchmark bench;
  bench.Start();
  TSystemTimer timer;
  for ( Tint i = 1; i <= 10; i ++ ) {
    Tcout << i << "00ms sleep with usleep()." << Tendl;
    timer.Start();
    usleep( i * 100 * 1000 );
    CPUconsume();
    timer.Lap();
    Tcout << timer << Tendl;
  }
  timer.Stop();
  bench.Stop();
  Tcout << timer << Tendl;
  Tcout << bench << Tendl;

  return 0;
}

Tvoid CPUconsume()
{
  for ( Tint i = 0; i < 0x10000000; i ++ ) {
    Tdouble z = i * i;
    for ( Tint j = 0; j < 0x10000000; j ++ ) {
      z *= (Tdouble)( i * j );
    }
  }
  return;
}
