Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update cpu usage calc #7

Merged
merged 13 commits into from
Nov 30, 2024
Prev Previous commit
Next Next commit
Change to small hump & Remove redundant line breaks
  • Loading branch information
66hh committed Nov 30, 2024
commit a9392568d4cb00980afb397dabcf9b66c0303546
30 changes: 13 additions & 17 deletions src/ui/misc/SysStatus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,40 +65,36 @@ SysStatus::~SysStatus() {

double SysStatus::getCPUUsage(CPUPercTemp& temp) {
#if JUCE_WINDOWS
uint64_t SumIdleTime = 0;
uint64_t SumTotalTime = 0;
uint64_t nSumIdleTime = 0;
uint64_t nSumTotalTime = 0;

NtQuerySystemInformation(SystemProcessorPerformanceInformation, this->ptrProcessorInfo, sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION) * this->nProcessors, NULL);

SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION* info = (SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION*)this->ptrProcessorInfo;

for (int i = 0; i < this->nProcessors; i++)
{
uint64_t DeltaCPUIdleTime;
uint64_t DeltaCPUTotalTime;
for (int i = 0; i < this->nProcessors; i++) {
uint64_t nDeltaCPUIdleTime;
FangCunWuChang marked this conversation as resolved.
Show resolved Hide resolved
uint64_t nDeltaCPUTotalTime;

this->ptrCPUIdleTime[i] = info[i].IdleTime.QuadPart;
this->ptrCPUTotalTime[i] = info[i].KernelTime.QuadPart + info[i].UserTime.QuadPart;

DeltaCPUIdleTime = this->ptrCPUIdleTime[i] - this->ptrPreviousCPUIdleTime[i];
DeltaCPUTotalTime = this->ptrCPUTotalTime[i] - this->ptrPreviousCPUTotalTime[i];
nDeltaCPUIdleTime = this->ptrCPUIdleTime[i] - this->ptrPreviousCPUIdleTime[i];
nDeltaCPUTotalTime = this->ptrCPUTotalTime[i] - this->ptrPreviousCPUTotalTime[i];

SumIdleTime += DeltaCPUIdleTime;
SumTotalTime += DeltaCPUTotalTime;
nSumIdleTime += nDeltaCPUIdleTime;
nSumTotalTime += nDeltaCPUTotalTime;

this->ptrPreviousCPUIdleTime[i] = this->ptrCPUIdleTime[i];
this->ptrPreviousCPUTotalTime[i] = this->ptrCPUTotalTime[i];
}

if (SumTotalTime != 0)
{
return (100 - ((SumIdleTime * 100) / SumTotalTime)) / 100.0;
}
else
{
return 0;
if (nSumTotalTime) {
return (100 - ((nSumIdleTime * 100) / nSumTotalTime)) / 100.0;
FangCunWuChang marked this conversation as resolved.
Show resolved Hide resolved
}

return 0;

#else //JUCE_WINDOWS
long total = 0, idle = 0;

Expand Down