/phase2fixed/SBB_util.cc

https://github.com/caymanson/financial_software_projects · C++ · 63 lines · 48 code · 14 blank · 1 comment · 0 complexity · ea54a5442b49156d50c071b9a0a9c087 MD5 · raw file

  1. #ifndef SBB_UTIL_H
  2. #define SBB_UTIL_H
  3. #include "SBB_util.h"
  4. #include "string.h"
  5. static long Ticks_per_second = sysconf(_SC_CLK_TCK);
  6. SBB_util::SBB_util()
  7. {
  8. _start_time=0;
  9. _end_time=0;
  10. memset(&_start_cpu,0,sizeof(struct tms));
  11. memset(&_end_cpu,0,sizeof(struct tms));
  12. printf("system constant: clock ticks per second: %d\n", Ticks_per_second);
  13. }
  14. void
  15. SBB_util::start_clock()
  16. {
  17. _start_time = times(&_start_cpu);
  18. }
  19. void
  20. SBB_util::end_clock()
  21. {
  22. #ifdef OLD
  23. _end_time = times(&_end_cpu);
  24. intmax_t real_time_diff = _end_time - _start_time;
  25. intmax_t user_time_diff = _end_cpu.tms_utime - _start_cpu.tms_utime;
  26. intmax_t system_time_diff = _end_cpu.tms_stime - _start_cpu.tms_stime;
  27. double ticks_per_second_casted = Ticks_per_second; // so I can divide
  28. #endif
  29. double real_time, user_time, system_time;
  30. end_clock(real_time,user_time,system_time);
  31. printf("\nREAL seconds: %3.3f - USER space seconds: %3.3f SYSTEM space seconds: %3.3f\n\n",
  32. real_time,
  33. user_time,
  34. system_time);
  35. }
  36. void
  37. SBB_util::end_clock(double& real_time, double& user_time, double& system_time)
  38. {
  39. _end_time = times(&_end_cpu);
  40. intmax_t real_time_diff = _end_time - _start_time;
  41. intmax_t user_time_diff = _end_cpu.tms_utime - _start_cpu.tms_utime;
  42. intmax_t system_time_diff = _end_cpu.tms_stime - _start_cpu.tms_stime;
  43. double ticks_per_second_casted = Ticks_per_second; // so I can divide
  44. //printf("\nREAL seconds: %3.3f (USER space seconds: %3.3f SYSTEM space seconds: %3.3f)\n\n",
  45. real_time = real_time_diff/ticks_per_second_casted;
  46. user_time = user_time_diff/ticks_per_second_casted;
  47. system_time = system_time_diff/ticks_per_second_casted;
  48. }
  49. #endif