Fix speed calculation on media dump and scan.

This commit is contained in:
2019-01-27 17:47:40 +00:00
parent 6b1aeb6cbb
commit 53f2f50cbe
11 changed files with 175 additions and 81 deletions

View File

@@ -156,6 +156,8 @@ namespace DiscImageChef.Core.Devices.Scanning
IbgLog ibgLog = new IbgLog(ibgLogPath, SD_PROFILE);
start = DateTime.UtcNow;
DateTime timeSpeedStart = DateTime.UtcNow;
ulong sectorSpeedStart = 0;
for(ulong i = 0; i < results.Blocks; i += blocksToRead)
{
if(aborted) break;
@@ -194,9 +196,14 @@ namespace DiscImageChef.Core.Devices.Scanning
ibgLog.Write(i, 0);
}
double newSpeed =
(double)blockSize * blocksToRead / 1048576 / (duration / 1000);
if(!double.IsInfinity(newSpeed)) currentSpeed = newSpeed;
sectorSpeedStart += blocksToRead;
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
if(elapsed < 1) continue;
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
sectorSpeedStart = 0;
timeSpeedStart = DateTime.UtcNow;
}
end = DateTime.UtcNow;