|
From: Andrew M. <and...@uk...> - 2010-11-30 08:34:58
|
I have written a little test program that deliberately goes into a tight CPU loop. This features as high CPU usage on task manager. However, my C++ sigar program shows it with a CPU usage of zero. It shows zero for every process. Here is a redacted version of my code:
int errorCode;
sigar_proc_list_t processList;
errorCode = sigar_proc_list_get(sigar, &processList);
if (errorCode != SIGAR_OK)
{
throw std::runtime_error(sigar_strerror(sigar, errorCode));
}
for (size_t i = 0; i < processList.number; i++)
{
sigar_proc_cpu_t cpu;
errorCode = sigar_proc_cpu_get(sigar, processList.data[i], &cpu);
if (errorCode != SIGAR_OK)
{
continue;
}
std::cout << processList.data[i] << " " << 100.0 * cpu.percent << std::endl;
}
What am I doing wrong please?
-Andrew Marlow
|