#include <rwlock_tester.h>
Public Member Functions | |
| GraphData () | |
| void | init (const RWLockTester &tester, const int *th_counts, size_t thread_count_len) |
| int | add_results (const RWLockTester &tester, size_t thread_count_num) |
| template<class F> | |
| int | print (F f, const char *file, const char *title=NULL) const |
| int | print_read (const char *file, const char *title=NULL) const |
| int | print_write (const char *file, const char *title=NULL) const |
| int | print_summary (const char *file, const char *title=NULL) const |
| int | print_total_time (const char *file, const char *title=NULL) const |
Static Public Member Functions | |
| static MILLISECONDS | get_read (const RWLockGraphData &d, size_t indx) |
| static MILLISECONDS | get_write (const RWLockGraphData &d, size_t indx) |
| static MILLISECONDS | get_sum (const RWLockGraphData &d, size_t indx) |
| static MILLISECONDS | get_total (const RWLockGraphData &d, size_t indx) |
Private Attributes | |
| std::vector< int > | threads |
| std::vector< RWLockGraphData > | lock_info |
Definition at line 249 of file rwlock_tester.h.
| GraphData::GraphData | ( | ) | [inline] |
| void GraphData::init | ( | const RWLockTester & | tester, | |
| const int * | th_counts, | |||
| size_t | thread_count_len | |||
| ) |
Definition at line 377 of file rwlock_tester.cc.
References RWLockTester::begin(), RWLockTester::end(), lock_info, and threads.
Referenced by main().
00378 { 00379 threads.clear(); 00380 threads.insert(threads.begin(),th_counts, th_counts+thread_count_len); 00381 for(std::vector<RWLockLoopTest *>::const_iterator i=tester.begin(); i!=tester.end(); i++) 00382 { 00383 size_t last = lock_info.size(); 00384 lock_info.resize(last+1); 00385 lock_info[last].clear(); 00386 lock_info[last].name = (*i)->name(); 00387 lock_info[last].resize(thread_count_len); 00388 } 00389 }
| int GraphData::add_results | ( | const RWLockTester & | tester, | |
| size_t | thread_count_num | |||
| ) |
Definition at line 391 of file rwlock_tester.cc.
References lock_info, and RWLockTester::size().
Referenced by main().
00392 { 00393 for(size_t indx=0; indx<tester.size(); indx++) 00394 { 00395 lock_info[indx].read[thread_count_num] = tester[indx]->get_read_thread_time(); 00396 lock_info[indx].write[thread_count_num] = tester[indx]->get_write_thread_time(); 00397 lock_info[indx].total[thread_count_num] = tester[indx]->get_total_test_time(); 00398 } 00399 return 0; 00400 }
| int GraphData::print | ( | F | f, | |
| const char * | file, | |||
| const char * | title = NULL | |||
| ) | const [inline] |
Definition at line 420 of file rwlock_tester.h.
References lock_info, and threads.
Referenced by print_read(), print_summary(), print_total_time(), and print_write().
00421 { 00422 FILE *f = fopen(file, "w"); 00423 if(f == NULL) return errno; 00424 if(title) 00425 fprintf(f, "# %s\n", title); 00426 fprintf(f, "%32.32s \t ", "threads:"); 00427 for(std::vector<int>::const_iterator i=threads.begin(); i!=threads.end(); i++) 00428 { 00429 fprintf(f, "%16d \t ", *i); 00430 } 00431 fprintf(f, "\n"); 00432 for(std::vector<RWLockGraphData>::const_iterator curr=lock_info.begin(); curr!=lock_info.end(); curr++) 00433 { 00434 fprintf(f, "\"%-30.30s\" \t ", curr->name.c_str()); 00435 for(size_t ii=0; ii<threads.size(); ii++) 00436 fprintf(f, "%16llu \t ", (unsigned long long)binf(*curr, ii)); 00437 fprintf(f, "\n"); 00438 } 00439 00440 fclose(f); 00441 return 0; 00442 }
| static MILLISECONDS GraphData::get_read | ( | const RWLockGraphData & | d, | |
| size_t | indx | |||
| ) | [inline, static] |
Definition at line 260 of file rwlock_tester.h.
References RWLockGraphData::read.
Referenced by print_read().
00260 { return d.read[indx]; }
| static MILLISECONDS GraphData::get_write | ( | const RWLockGraphData & | d, | |
| size_t | indx | |||
| ) | [inline, static] |
Definition at line 261 of file rwlock_tester.h.
References RWLockGraphData::write.
Referenced by print_write().
00261 { return d.write[indx]; }
| static MILLISECONDS GraphData::get_sum | ( | const RWLockGraphData & | d, | |
| size_t | indx | |||
| ) | [inline, static] |
Definition at line 262 of file rwlock_tester.h.
References RWLockGraphData::read, and RWLockGraphData::write.
Referenced by print_summary().
| static MILLISECONDS GraphData::get_total | ( | const RWLockGraphData & | d, | |
| size_t | indx | |||
| ) | [inline, static] |
Definition at line 263 of file rwlock_tester.h.
References RWLockGraphData::total.
Referenced by print_total_time().
00263 { return d.total[indx]; }
| int GraphData::print_read | ( | const char * | file, | |
| const char * | title = NULL | |||
| ) | const [inline] |
Definition at line 443 of file rwlock_tester.h.
References get_read(), and print().
Referenced by main().
| int GraphData::print_write | ( | const char * | file, | |
| const char * | title = NULL | |||
| ) | const [inline] |
Definition at line 446 of file rwlock_tester.h.
References get_write(), and print().
Referenced by main().
| int GraphData::print_summary | ( | const char * | file, | |
| const char * | title = NULL | |||
| ) | const [inline] |
| int GraphData::print_total_time | ( | const char * | file, | |
| const char * | title = NULL | |||
| ) | const [inline] |
Definition at line 452 of file rwlock_tester.h.
References get_total(), and print().
Referenced by main().
std::vector<int> GraphData::threads [private] |
std::vector<RWLockGraphData> GraphData::lock_info [private] |
1.5.5