⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timerutility.h

📁 一种聚类算法,名字是cocluster
💻 H
字号:
/*  TimerUtility.h    Header file for the TimerUtility class    Copyright (c) 2005, 2006              by Hyuk Cho    Copyright (c) 2003, 2004    	      by Hyuk Cho, Yuqiang Guan, and Suvrit Sra                {hyukcho, yguan, suvrit}@cs.utexas.edu*/#if !defined(_TIMER_UTILITY_H_)#define _TIMER_UTILITY_H_#include <iostream>#include <unistd.h>#include <sys/types.h>#include <sys/time.h>#include <sys/resource.h>using namespace std;class TimerUtil{  private:    long sec;    long microsec;    timeval startTime;      timeval stopTime;    timeval usrStartTime, sysStartTime;  public:    // Note: constructor automatically sets start time    TimerUtil() {    setStartTime();} // Call this at the time you wish to start timing.void setStartTime() {  sec = microsec = 0;  gettimeofday(&startTime, NULL);  struct rusage r_usage;  getrusage(RUSAGE_SELF, &r_usage);  usrStartTime.tv_sec = r_usage.ru_utime.tv_sec;  usrStartTime.tv_usec = r_usage.ru_utime.tv_usec;  sysStartTime.tv_sec = r_usage.ru_stime.tv_sec;  sysStartTime.tv_usec = r_usage.ru_stime.tv_usec;}// Call this at the time you wish to end timing.void setStopTime() {  gettimeofday(&stopTime, NULL);  sec = stopTime.tv_sec - startTime.tv_sec;  microsec = stopTime.tv_usec - startTime.tv_usec;  if (microsec < 0) {    microsec+=1000000;    sec--;  }}    void setStopTime(ostream &os, const char *notes) {  struct rusage r_usage;  getrusage(RUSAGE_SELF, &r_usage);  long usec = r_usage.ru_utime.tv_sec - usrStartTime.tv_sec;  long umsec = r_usage.ru_utime.tv_usec - usrStartTime.tv_usec;  if (umsec < 0) {    umsec += 1000000;    usec--;  }  long ssec = r_usage.ru_stime.tv_sec - sysStartTime.tv_sec;  long smsec = r_usage.ru_stime.tv_usec - sysStartTime.tv_usec;  if (smsec < 0) {    smsec += 1000000;    ssec--;  }  setStopTime();  os << notes << endl;/*  os << "CPU Usage: user = " << usec     << " seconds " << umsec << " us, system = " << ssec      << " seconds " << smsec << " us" << endl;  os << "ELAPSED Time: " << sec << " seconds "     << microsec << " us" << endl;*/  os << "  user   = " << usec << " second(s) " << umsec << " ms" << endl;  os << "  system = " << ssec << " second(s) " << smsec << " ms" << endl;}void setStopTime(ostream &os, const char *notes, const int iter) {  struct rusage r_usage;  getrusage(RUSAGE_SELF, &r_usage);  long usec = r_usage.ru_utime.tv_sec - usrStartTime.tv_sec;  long umsec = r_usage.ru_utime.tv_usec - usrStartTime.tv_usec;  if (umsec < 0) {    umsec += 1000000;    usec--;  }  long ssec = r_usage.ru_stime.tv_sec - sysStartTime.tv_sec;  long smsec = r_usage.ru_stime.tv_usec - sysStartTime.tv_usec;  if (smsec < 0) {    smsec += 1000000;    ssec--;  }  setStopTime();  os << notes << endl;/*  os << "CPU Usage: user = " << usec     << " seconds " << umsec << " us, system = " << ssec      << " seconds " << smsec << " us" << endl;  os << "Time per iteration = " << (usec+umsec/1e6) / iter << endl;  os << "ELAPSED Time: " << sec << " seconds "     << microsec << " us" << endl;*/  os << "  User     = " << usec << " second(s) " << umsec << " ms" << endl;  os << "  System   = " << ssec << " second(s) " << smsec << " ms" << endl;  os << "  Time/Run = " << (usec + umsec / 1e6) / iter << " second(s)" << endl;}void getTotalElapsedSec(ostream &os){  struct rusage r_usage;  getrusage(RUSAGE_SELF, &r_usage);/*  os << "CPU Usage: user = " << r_usage.ru_utime.tv_sec     << " seconds " << r_usage.ru_utime.tv_usec << " us, system = " << r_usage.ru_stime.tv_sec     << " seconds " << r_usage.ru_stime.tv_usec << " us" << endl;*/  os << " User   = " << r_usage.ru_utime.tv_sec << " second(s) " << r_usage.ru_utime.tv_usec << " ms" << endl;  os << " system = " << r_usage.ru_stime.tv_sec << " second(s) " << r_usage.ru_stime.tv_usec << " ms" << endl;}// Returns the seconds between calls to setStartTime and setEndTimelong getElapsedSec() {return sec;}  // Returns any extra microseconds after taking to account elapsed secondslong getElapsedMicrosec() {return microsec;}   };#endif // !defined(_TIMER_UTILITY_H_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -