diff --git a/src/tools.c b/src/tools.c index 682ebd0ad7cc0514cb5904dbd112b2b1bc1da05d..4653c2ef799f9256bd459d9dcc1cf5698a7db6f4 100644 --- a/src/tools.c +++ b/src/tools.c @@ -27,6 +27,8 @@ #include <stddef.h> #include <stdio.h> #include <stdlib.h> +#include <sys/resource.h> +#include <sys/time.h> /* This object's header. */ #include "tools.h" @@ -701,3 +703,14 @@ int compare_particles(struct part a, struct part b, double threshold) { #endif } + +/** + * @brief return the resident memory use of the process and its children. + * + * @result memory use in Kb. + */ +long get_maxrss() { + struct rusage usage; + getrusage(RUSAGE_SELF, &usage); + return usage.ru_maxrss; +} diff --git a/src/tools.h b/src/tools.h index 4d9e8d3ef86f9ad2661118acf008797893ea5bd7..bb141101a3bf6fad38a83a15ea7f6bb5de86e9f8 100644 --- a/src/tools.h +++ b/src/tools.h @@ -52,4 +52,6 @@ int compare_values(double a, double b, double threshold, double *absDiff, double *absSum, double *relDiff); int compare_particles(struct part a, struct part b, double threshold); +long get_maxrss(); + #endif /* SWIFT_TOOL_H */