Go to the documentation of this file.
37 #ifndef UTILITIES_HEADER
38 #define UTILITIES_HEADER
43 #include <sys/resource.h>
46 #define MAX_HOST_NAME_LEN 100
53 #define MAX_WORKING_DIRECTORY_LEN 800
67 double* residentMemGigaBytes,
68 double* virtualMemPeakGigaBytes);
91 if(gettimeofday(&tv, NULL) != 0)
92 throw std::runtime_error(
"Error in get_wall_seconds(), in gettimeofday().");
93 double seconds = tv.tv_sec + (double)tv.tv_usec / 1000000;
98 if(getrusage (RUSAGE_SELF, &usage) != 0)
99 throw std::runtime_error(
"Error in get_current_cpu_times(), in getrusage().");
100 seconds_usr = usage.ru_utime.tv_sec + (double)usage.ru_utime.tv_usec / 1000000;
101 seconds_sys = usage.ru_stime.tv_sec + (
double)usage.ru_stime.tv_usec / 1000000;
111 void print(
int area,
const char *routine) {
114 double seconds_usr, seconds_sys;
119 routine, secondsTakenCPU_usr, secondsTakenCPU_sys, secondsTakenWall);
TimeMeter()
Definition: utilities.h:103
Definition of the main floating-point datatype used; the ergo_real type.
int get_memory_usage_by_ps(double *virtualMemoryGigaBytes, double *residentMemoryGigaBytes)
Definition: utilities.cc:130
#define LOG_CAT_TIMINGS
Definition: output.h:52
static int unique_random_filename_counter
Definition: utilities.cc:50
long int get_file_size(const char *fileName)
Definition: utilities.cc:67
double startTimeCPU_sys
Definition: utilities.h:82
#define MAX_WORKING_DIRECTORY_LEN
Definition: utilities.h:53
#define LOG_CAT_ERROR
Definition: output.h:47
char s[MAX_WORKING_DIRECTORY_LEN]
Definition: utilities.h:57
int generate_unique_random_filename(char *result, unsigned n)
Definition: utilities.cc:53
static int getNumberFromBuffer(const char *buffer, const char *s)
Definition: utilities.cc:187
double get_start_time_wall_seconds() const
Definition: utilities.h:86
Definition: utilities.h:56
int generate_unique_random_filename(char *result, unsigned n)
Definition: utilities.cc:53
Definition: utilities.h:77
Definition: utilities.h:49
int get_memory_usage_by_ps(double *virtualMemoryGigaBytes, double *residentMemoryGigaBytes)
Definition: utilities.cc:130
double startTimeCPU_usr
Definition: utilities.h:83
double get_elapsed_wall_seconds()
Definition: utilities.h:107
int get_memory_usage_by_procfile(double *virtualMemGigaBytes, double *residentMemGigaBytes, double *virtualMemPeakGigaBytes)
Definition: utilities.cc:229
char s[MAX_HOST_NAME_LEN]
Definition: utilities.h:50
static double get_wall_seconds()
Definition: utilities.h:89
#define LOG_AREA_UNDEFINED
Definition: output.h:56
void get_host_name(host_name_struct *result)
Definition: utilities.cc:78
#define PROCFILESIZE
Definition: utilities.cc:227
void print(int area, const char *routine)
Definition: utilities.h:111
void get_working_directory(working_directory_struct *result)
Definition: utilities.cc:88
void get_host_name(host_name_struct *result)
Definition: utilities.cc:78
Basic OS access utilities.
static void get_current_cpu_times(double &seconds_usr, double &seconds_sys)
Definition: utilities.h:96
int get_memory_usage_by_procfile(double *virtualMemGigaBytes, double *residentMemGigaBytes, double *virtualMemPeakGigaBytes)
Definition: utilities.cc:229
long int get_file_size(const char *fileName)
Definition: utilities.cc:67
double startTimeWall
Definition: utilities.h:84
#define MAX_HOST_NAME_LEN
Definition: utilities.h:46
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
Time-measuring class.
Definition: utilities.h:80
void get_working_directory(working_directory_struct *result)
Definition: utilities.cc:88
Functionality for writing output messages to a text file.