00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
#include <volume_io/internal_volume_io.h>
00016
#include <bicpl.h>
00017
00018
#ifndef lint
00019
static char rcsid[] =
"$Header: /software/source//libraries/bicpl/Prog_utils/time.c,v 1.7 2000/02/05 21:27:13 stever Exp $";
00020
#endif
00021
00022 private Real
cpu_start_time;
00023 private Real
real_start_time;
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 public void start_timing(
void )
00039 {
00040
cpu_start_time = current_cpu_seconds();
00041
real_start_time = current_realtime_seconds();
00042 }
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 public void end_timing(
00060 STRING title,
00061
int n )
00062 {
00063 Real per_unit_real_time, per_unit_cpu_time;
00064 Real cpu_time, real_time;
00065
00066
if( n < 1 )
00067 n = 1;
00068
00069 cpu_time = current_cpu_seconds() -
cpu_start_time;
00070 real_time = current_realtime_seconds() -
real_start_time;
00071
00072 per_unit_cpu_time = cpu_time / (Real) n;
00073 per_unit_real_time = real_time / (Real) n;
00074
00075
if( title != NULL )
00076 print(
"%s: ", title );
00077 print(
"per cycle: " );
00078 print_time(
"Cpu: %g %s\t", per_unit_cpu_time );
00079 print_time(
"Real: %g %s", per_unit_real_time );
00080
00081
if( cpu_time > 0.0 && real_time > 0.0 )
00082 print(
" c/s: %g %g\n", (Real) n / cpu_time, (Real) n / real_time );
00083 }