DiskIO / NetIO: fixes I/O rate calculation precision, prevent div-by-zero

This commit is contained in:
Carter Li
2026-08-15 08:51:45 +08:00
committed by Carter Li
parent a0e913a14c
commit 68a0f5e3c6
2 changed files with 2 additions and 4 deletions
+1 -2
View File
@@ -72,8 +72,7 @@ const char* ffDetectDiskIO(FFlist* result, FFDiskIOOptions* options) {
uint64_t* prevValue = (uint64_t*) ((uint8_t*) icPrev + off);
uint64_t* currValue = (uint64_t*) ((uint8_t*) icCurr + off);
uint64_t temp = *currValue;
*currValue -= *prevValue;
*currValue /= (time2 - time1) / 1000 /* seconds */;
*currValue = (*currValue - *prevValue) * 1000 / (time2 - time1); // Calculate per second
// For next function call
*prevValue = temp;
+1 -2
View File
@@ -70,8 +70,7 @@ const char* ffDetectNetIO(FFlist* result, FFNetIOOptions* options) {
uint64_t* prevValue = (uint64_t*) ((uint8_t*) icPrev + off);
uint64_t* currValue = (uint64_t*) ((uint8_t*) icCurr + off);
uint64_t temp = *currValue;
*currValue -= *prevValue;
*currValue /= (time2 - time1) / 1000 /* seconds */;
*currValue = (*currValue - *prevValue) * 1000 / (time2 - time1); // Calculate per second
*prevValue = temp;
}
}