[SIGAR-19] change process cpu time units to milliseconds

This commit is contained in:
Doug MacEachern 2006-12-04 03:42:27 +00:00
parent 4e45608ce0
commit 795fa1ae44
7 changed files with 20 additions and 15 deletions

View File

@ -52,7 +52,7 @@ public class ProcCpu extends ProcTime {
ptable.put(cpu, cpu); ptable.put(cpu, cpu);
} }
long timeNow = System.currentTimeMillis() / 1000; //seconds long timeNow = System.currentTimeMillis();
double diff = timeNow - cpu.lastTime; double diff = timeNow - cpu.lastTime;
if (diff == 0) { if (diff == 0) {
return cpu; //we were just called within < 1 second ago. return cpu; //we were just called within < 1 second ago.

View File

@ -149,7 +149,7 @@ public class Ps extends SigarCommandBase {
} }
public static String getCpuTime(ProcTime time) { public static String getCpuTime(ProcTime time) {
long t = time.getTotal(); long t = time.getTotal() / 1000;
return t/60 + ":" + t%60; return t/60 + ":" + t%60;
} }

View File

@ -100,12 +100,17 @@
#define strnEQ(s1, s2, n) (strncmp(s1, s2, n) == 0) #define strnEQ(s1, s2, n) (strncmp(s1, s2, n) == 0)
#endif #endif
#define SIGAR_MSEC 1000L
#define SIGAR_SEC2NANO(s) \ #define SIGAR_SEC2NANO(s) \
((sigar_uint64_t)(s) * (sigar_uint64_t)1000000000) ((sigar_uint64_t)(s) * (sigar_uint64_t)1000000000)
/* cpu ticks to seconds */ /* cpu ticks to seconds */
#define SIGAR_TICK2SEC(s) ((s) / sigar->ticks) #define SIGAR_TICK2SEC(s) ((s) / sigar->ticks)
/* cpu ticks to milliseconds */
#define SIGAR_TICK2MSEC(s) ((s) * (SIGAR_MSEC / sigar->ticks))
#define IFTYPE_LO 2 #define IFTYPE_LO 2
#define IFTYPE_ETH 3 #define IFTYPE_ETH 3

View File

@ -1082,9 +1082,9 @@ int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
} }
proctime->start_time = pinfo->pi_start; proctime->start_time = pinfo->pi_start;
proctime->start_time *= 1000; /* convert to ms */ proctime->start_time *= SIGAR_MSEC; /* convert to ms */
proctime->user = pinfo->pi_utime; proctime->user = pinfo->pi_utime * SIGAR_MSEC;
proctime->sys = pinfo->pi_stime; proctime->sys = pinfo->pi_stime * SIGAR_MSEC;
proctime->total = proctime->user + proctime->sys; proctime->total = proctime->user + proctime->sys;
return SIGAR_OK; return SIGAR_OK;

View File

@ -332,9 +332,9 @@ int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
} }
proctime->start_time = pinfo->pst_start; proctime->start_time = pinfo->pst_start;
proctime->start_time *= 1000; proctime->start_time *= SIGAR_MSEC;
proctime->user = pinfo->pst_utime; proctime->user = pinfo->pst_utime * SIGAR_MSEC;
proctime->sys = pinfo->pst_stime; proctime->sys = pinfo->pst_stime * SIGAR_MSEC;
proctime->total = proctime->user + proctime->sys; proctime->total = proctime->user + proctime->sys;
return SIGAR_OK; return SIGAR_OK;

View File

@ -720,8 +720,8 @@ static int proc_stat_read(sigar_t *sigar, sigar_pid_t pid)
pstat->major_faults = sigar_strtoull(ptr); /* (12) */ pstat->major_faults = sigar_strtoull(ptr); /* (12) */
ptr = sigar_skip_token(ptr); /* (13) cmaj flt */ ptr = sigar_skip_token(ptr); /* (13) cmaj flt */
pstat->utime = sigar_strtoull(ptr) / sigar->ticks; /* (14) */ pstat->utime = SIGAR_TICK2MSEC(sigar_strtoull(ptr)); /* (14) */
pstat->stime = sigar_strtoull(ptr) / sigar->ticks; /* (15) */ pstat->stime = SIGAR_TICK2MSEC(sigar_strtoull(ptr)); /* (15) */
ptr = sigar_skip_token(ptr); /* (16) cutime */ ptr = sigar_skip_token(ptr); /* (16) cutime */
ptr = sigar_skip_token(ptr); /* (17) cstime */ ptr = sigar_skip_token(ptr); /* (17) cstime */

View File

@ -681,8 +681,8 @@ int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
return SIGAR_OK; return SIGAR_OK;
} }
#define PRTIME_2SIGAR(t) \ #define PRTIME_2MSEC(t) \
(t.tv_sec + t.tv_nsec / NANOSEC) ((t.tv_sec * MILLISEC) + (t.tv_nsec / (NANOSEC/MILLISEC)))
int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid, int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_time_t *proctime) sigar_proc_time_t *proctime)
@ -695,7 +695,7 @@ int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
} }
proctime->start_time = usage.pr_create.tv_sec + sigar->boot_time; proctime->start_time = usage.pr_create.tv_sec + sigar->boot_time;
proctime->start_time *= 1000; proctime->start_time *= MILLISEC;
if (usage.pr_utime.tv_sec < 0) { if (usage.pr_utime.tv_sec < 0) {
/* XXX wtf? seen on solaris 10, only for the self process */ /* XXX wtf? seen on solaris 10, only for the self process */
@ -712,8 +712,8 @@ int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
usage.pr_stime.tv_nsec = pstatus.pr_stime.tv_nsec; usage.pr_stime.tv_nsec = pstatus.pr_stime.tv_nsec;
} }
proctime->user = PRTIME_2SIGAR(usage.pr_utime); proctime->user = PRTIME_2MSEC(usage.pr_utime);
proctime->sys = PRTIME_2SIGAR(usage.pr_stime); proctime->sys = PRTIME_2MSEC(usage.pr_stime);
proctime->total = proctime->user + proctime->sys; proctime->total = proctime->user + proctime->sys;
return SIGAR_OK; return SIGAR_OK;