void main (){ long w1,w2,rc; double c1,c2,r,r2; w1=getWallTime(); c1=getCpuTime(); sleep(60); w2=getWallTime(); c2=getCpuTime(); r = calCpuTime(c1,c2); rc = calcWallTime(w1,w2); r2=r/CLOCKS_PER_SEC; printf("%f\n",r); printf("%f\n",r2); printf("%li\n",rc); }
void Timer::printToStream(ostream& os) { os << "Timer["; if(_name.size() != 0) os << "name: \"" << _name << "\", "; if(!isStarted()) os << "NOT_STARTED]"; else os << "elapsed: " << get() << ", cpuTime: " << getCpuTime() << "]"; }
int main (int argc, char **argv) { double start, stop; pthread_t *threads; int idx, cnt, err; ThreadArg *args; float elapsed; ARTtrie *trie; int fd; if( argc < 3 ) { fprintf (stderr, "Usage: %s idx_file cmds src_file1 src_file2 ... ]\n", argv[0]); fprintf (stderr, " where idx_file is the name of the ARTful tree file\n"); fprintf (stderr, " cmds is a string of (r)ev scan/(w)rite/(s)can/(d)elete/(f)ind/(p)ennysort/(c)ount/(m)ainflush/(a)udit, with a one character command for each input src_file. A command can also be given with no input file\n"); fprintf (stderr, " src_file1 thru src_filen are files of keys or pennysort records separated by newline\n"); exit(0); } start = getCpuTime(0); if( argc > 3 ) cnt = argc - 3; else cnt = 0; threads = malloc (cnt * sizeof(pthread_t)); args = malloc ((cnt + 1) * sizeof(ThreadArg)); #ifdef PERSIST fd = open ((char*)argv[1], O_RDWR | O_CREAT, 0666); if( fd == -1 ) { fprintf (stderr, "Unable to create/open ARTful file %s\n", argv[1]); exit (1); } #else fd = -1; #endif trie = ARTnew(fd); // fire off threads if( cnt > 1 ) for( idx = 0; idx < cnt; idx++ ) { args[idx].infile = argv[idx + 3]; args[idx].type = argv[2]; args[idx].trie = trie; args[idx].idx = idx; if( err = pthread_create (threads + idx, NULL, index_file, args + idx) ) fprintf(stderr, "Error creating thread %d\n", err); } else { args[0].infile = argv[3]; args[0].type = argv[2]; args[0].trie = trie; args[0].idx = 0; index_file (args); } // wait for termination if( cnt > 1 ) for( idx = 0; idx < cnt; idx++ ) pthread_join (threads[idx], NULL); ARTclose (trie); elapsed = getCpuTime(0) - start; fprintf(stderr, " real %dm%.3fs\n", (int)(elapsed/60), elapsed - (int)(elapsed/60)*60); elapsed = getCpuTime(1); fprintf(stderr, " user %dm%.3fs\n", (int)(elapsed/60), elapsed - (int)(elapsed/60)*60); elapsed = getCpuTime(2); fprintf(stderr, " sys %dm%.3fs\n", (int)(elapsed/60), elapsed - (int)(elapsed/60)*60); }