Skip to content
This repository was archived by the owner on Mar 15, 2019. It is now read-only.

Commit dd125bb

Browse files
author
Fabian Holler
committed
added calc_cpu_usage(..) and calc_cpu_usage_pct(..)
1 parent bb0ecc7 commit dd125bb

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

c/getusage.c

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ int get_usage(const pid_t pid, struct pstat* result){
8181
}
8282

8383
/*
84-
* calculates the actual CPU usage(cur_usage - last_usage) in percent
85-
* cur_usage, last_usage: both last measured get_usage() results
86-
* ucpu_usage, scpu_usage: result parameters: user and sys cpu usage in %
84+
* calculates the elapsed CPU usage between 2 measuring points. in percent
8785
*/
88-
void calc_cpu_usage(const struct pstat* cur_usage, const struct pstat*
89-
last_usage, double* ucpu_usage, double* scpu_usage){
86+
void calc_cpu_usage_pct(const struct pstat* cur_usage,
87+
const struct pstat* last_usage,
88+
double* ucpu_usage, double* scpu_usage)
89+
{
9090
const long unsigned int total_time_diff = cur_usage->cpu_total_time -
9191
last_usage->cpu_total_time;
9292

@@ -99,3 +99,18 @@ void calc_cpu_usage(const struct pstat* cur_usage, const struct pstat*
9999
(double) total_time_diff);
100100
}
101101

102+
/*
103+
* calculates the elapsed CPU usage between 2 measuring points in ticks
104+
*/
105+
void calc_cpu_usage(const struct pstat* cur_usage,
106+
const struct pstat* last_usage,
107+
long unsigned int* ucpu_usage,
108+
long unsigned int* scpu_usage)
109+
{
110+
111+
*ucpu_usage = (cur_usage->utime_ticks + cur_usage->cutime_ticks) -
112+
(last_usage->utime_ticks + last_usage->cutime_ticks);
113+
114+
*scpu_usage = (cur_usage->stime_ticks + cur_usage->cstime_ticks) -
115+
(last_usage->stime_ticks + last_usage->cstime_ticks);
116+
}

0 commit comments

Comments
 (0)