From 3f008c4b6d10ea8ec54e6591cbef41c92786f959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 15 Nov 2022 17:48:57 +0800 Subject: [PATCH] CpuUsage: improve performance --- src/detection/cpuUsage/cpuUsage.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/detection/cpuUsage/cpuUsage.c b/src/detection/cpuUsage/cpuUsage.c index 7470236dc..82bf1f7d4 100644 --- a/src/detection/cpuUsage/cpuUsage.c +++ b/src/detection/cpuUsage/cpuUsage.c @@ -36,23 +36,30 @@ const char* ffGetCpuUsageResult(double* result) error = ffGetCpuUsageInfo(&inUseAll1, &totalAll1); if(error) return error; - ffTimeSleep(1000); + ffTimeSleep(250); } else { uint64_t duration = ffTimeGetTick() - startTime; - if(duration < 1000) - ffTimeSleep(1000 - (uint32_t) duration); + if(duration < 250) + ffTimeSleep(250 - (uint32_t) duration); } - uint64_t inUseAll2, totalAll2; - error = ffGetCpuUsageInfo(&inUseAll2, &totalAll2); - if(error) - return error; + while(true) + { + uint64_t inUseAll2, totalAll2; + error = ffGetCpuUsageInfo(&inUseAll2, &totalAll2); + if(error) + return error; - *result = (double)(inUseAll2 - inUseAll1) / (double)(totalAll2 - totalAll1) * 100; - - return NULL; + if(inUseAll2 != inUseAll1) + { + *result = (double)(inUseAll2 - inUseAll1) / (double)(totalAll2 - totalAll1) * 100; + return NULL; + } + else + ffTimeSleep(250); + } } #endif //FF_DETECTION_CPUUSAGE_NOWAIT