source: tags/arb_5.2/PROBE_SET/ps_tools.cxx

Last change on this file was 5675, checked in by westram, 15 years ago
  • removed automatic timestamps (the best they were good for, were vc-conflicts)
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1//  ==================================================================== //
2//                                                                       //
3//    File      : ps_tools.cxx                                           //
4//    Purpose   : remove duplicated code                                 //
5//                                                                       //
6//                                                                       //
7//  Coded by Ralf Westram (coder@reallysoft.de) in October 2004          //
8//  Copyright Department of Microbiology (Technical University Munich)   //
9//                                                                       //
10//  Visit our web site at: http://www.arb-home.de/                       //
11//                                                                       //
12//  ==================================================================== //
13
14#include "ps_tools.hxx"
15
16#include <cstdio>
17#include <cstdlib>
18#include <ctime>
19#include <sys/times.h>
20
21// void PS_print_time_diff( const struct tms *_since ) {
22//     struct tms now;
23//     times( &now );
24//     printf( "time used : user (" );
25   
26//     unsigned int minutes  = (now.tms_utime-_since->tms_utime)/CLOCKS_PER_SEC / 60;
27//     unsigned int hours    = minutes / 60;
28//     minutes              -= hours * 60;
29//     if (hours > 0) printf( "%uh ", hours );
30//     if (minutes > 0) printf( "%um ", minutes );
31//     printf( "%.3fs) system (", (float)(now.tms_utime-_since->tms_utime)/CLOCKS_PER_SEC-(hours*3600)-(minutes*60) );
32
33//     minutes  = (now.tms_stime-_since->tms_stime)/CLOCKS_PER_SEC / 60;
34//     hours    = minutes / 60;
35//     minutes -= hours * 60;
36//     if (hours > 0) printf( "%uh ", hours );
37//     if (minutes > 0) printf( "%um ", minutes );
38//     printf( "%.3fs)\n",  (float)(now.tms_stime-_since->tms_stime)/CLOCKS_PER_SEC-(hours*3600)-(minutes*60) );
39
40//     fflush(stdout);
41// }
42
43void PS_print_time_diff( const struct tms *_since, const char *_before, const char *_after) {
44    struct tms now;
45    times( &now );
46    if (_before) printf( "%s", _before );
47    printf( "time used : user (" );
48   
49    unsigned int minutes  = (now.tms_utime-_since->tms_utime)/CLOCKS_PER_SEC / 60;
50    unsigned int hours    = minutes / 60;
51    minutes              -= hours * 60;
52    if (hours > 0) printf( "%uh ", hours );
53    if (minutes > 0) printf( "%um ", minutes );
54    printf( "%.3fs) system (", (float)(now.tms_utime-_since->tms_utime)/CLOCKS_PER_SEC-(hours*3600)-(minutes*60) );
55    minutes               = (now.tms_stime-_since->tms_stime)/CLOCKS_PER_SEC / 60;
56    hours                 = minutes / 60;
57    minutes              -= hours * 60;
58    if (hours > 0) printf( "%uh ", hours );
59    if (minutes > 0) printf( "%um ", minutes );
60    printf( "%.3fs)",  (float)(now.tms_stime-_since->tms_stime)/CLOCKS_PER_SEC-(hours*3600)-(minutes*60) );
61   
62    if (_after) {
63        printf( "%s", _after );
64    } else {
65        printf( "\n" );
66    }
67    fflush( stdout );
68}
69
70
71
Note: See TracBrowser for help on using the repository browser.