summaryrefslogtreecommitdiffstats
path: root/benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/resource_usage.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/benchmark/resource_usage.c b/benchmark/resource_usage.c
index 04f7195..8741215 100644
--- a/benchmark/resource_usage.c
+++ b/benchmark/resource_usage.c
@@ -3,15 +3,22 @@
3#include <sys/resource.h> 3#include <sys/resource.h>
4#include <sys/time.h> 4#include <sys/time.h>
5 5
6void print_resource_usage(const char *label) { 6void print_resource_usage(const char* label)
7 struct rusage usage; 7{
8 if (getrusage(RUSAGE_SELF, &usage) == 0) { 8 struct rusage usage;
9 long mem_kb = usage.ru_maxrss; 9 if (getrusage(RUSAGE_SELF, &usage) == 0) {
10 double user_sec = usage.ru_utime.tv_sec + usage.ru_utime.tv_usec / 1e6; 10 const long mem_kb = usage.ru_maxrss;
11 double sys_sec = usage.ru_stime.tv_sec + usage.ru_stime.tv_usec / 1e6; 11 const double user_sec =
12 printf("[%s] CPU user: %.3f s, system: %.3f s, peak memory: %ld KB\n", 12 usage.ru_utime.tv_sec + usage.ru_utime.tv_usec / 1e6;
13 label, user_sec, sys_sec, mem_kb); 13 const double sys_sec =
14 } else { 14 usage.ru_stime.tv_sec + usage.ru_stime.tv_usec / 1e6;
15 printf("[%s] Resource usage not available\n", label); 15 printf("[%s] CPU user: %.3f s, system: %.3f s, peak memory: "
16 } 16 "%ld KB\n",
17 label,
18 user_sec,
19 sys_sec,
20 mem_kb);
21 } else {
22 printf("[%s] Resource usage not available\n", label);
23 }
17} 24}