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 |
From: Andrew M. <and...@uk...> - 2010-12-01 08:55:41
|
For the record, I have found out what I was doing wrong. The cpu percentage is only available by sampling. So I had to make the call twice with a gap of at least one second in between. This makes it work. |
From: priya <l.r...@gm...> - 2010-12-03 19:42:05
|
hi marlowa, I am in need of C API's that are required for monitoring. I hope you are on the way. can you please help me in using C API for monitoring? Thanks |