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);
Time-measuring class.
Definition utilities.h:80
TimeMeter()
Definition utilities.h:103
void print(int area, const char *routine)
Definition utilities.h:111
double get_elapsed_wall_seconds()
Definition utilities.h:107
static double get_wall_seconds()
Definition utilities.h:89
double startTimeCPU_usr
Definition utilities.h:83
static void get_current_cpu_times(double &seconds_usr, double &seconds_sys)
Definition utilities.h:96
double startTimeWall
Definition utilities.h:84
double get_start_time_wall_seconds() const
Definition utilities.h:86
double startTimeCPU_sys
Definition utilities.h:82
Definition utilities.h:77
void do_output(int logCategory, int logArea, const char *format,...)
Definition output.cc:53
Functionality for writing output messages to a text file.
#define LOG_CAT_TIMINGS
Definition output.h:52
Definition of the main floating-point datatype used; the ergo_real type.
Definition utilities.h:49
Definition utilities.h:56
void get_host_name(host_name_struct *result)
Definition utilities.cc:78
#define MAX_WORKING_DIRECTORY_LEN
Definition utilities.h:53
int generate_unique_random_filename(char *result, unsigned n)
Definition utilities.cc:53
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
#define MAX_HOST_NAME_LEN
Definition utilities.h:46
void get_working_directory(working_directory_struct *result)
Definition utilities.cc:88
int get_memory_usage_by_ps(double *virtualMemoryGigaBytes, double *residentMemoryGigaBytes)
Definition utilities.cc:130