diff options
Diffstat (limited to 'src/copythread.cpp')
-rw-r--r-- | src/copythread.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/copythread.cpp b/src/copythread.cpp index 7ecc2a3..775de7f 100644 --- a/src/copythread.cpp +++ b/src/copythread.cpp @@ -35,16 +35,16 @@ void CopyThread::run() QElapsedTimer timer; qint64 ret; qint64 seqSum = 0, rndSum = 0; - qint64 seqTime, rndTime = -1; + qint64 seqTime = 0, rndTime = 1; const qint64 size = _file->size() - BUFFER_SIZE; // Sequential read emit logMessage(trUtf8("Starting sequential read test")); - if (size > 0) { + if (size > 0) { _file->seek(BIGRAND % size); } - timer.start(); + timer.start(); do { ret = _file->read(buffer, BUFFER_SIZE); seqSum += ret; @@ -65,13 +65,21 @@ void CopyThread::run() } while (!_doStop && ret > 0 && timer.elapsed() < TEST_LENGTH); rndTime = timer.elapsed(); } - - // All done - const qint64 seqSpeed = seqSum / (seqTime * 1024 + 1); - const qint64 rndSpeed = rndSum / (rndTime * 1024 + 1); - emit logMessage(trUtf8("Seq: %1MiB/s, Random: %2MiB/s - [%3s / %4s]") - .arg(QString::number(seqSpeed), QString::number(rndSpeed), - QString::number(seqTime / 1000), QString::number(rndTime / 1000))); + if (seqSum / (seqTime * 1024 + 1) >= 1) { + const qint64 seqSpeed = seqSum / (seqTime * 1024 + 1); + const qint64 rndSpeed = rndSum / (rndTime * 1024 + 1); + emit logMessage(trUtf8("Seq: %1MiB/s, Random: %2MiB/s - [%3s / %4s]") + .arg(QString::number(seqSpeed), QString::number(rndSpeed), + QString::number(seqTime / 1000), QString::number(rndTime / 1000))); + } else { + const qint64 seqSpeed = seqSum / (seqTime + 1); + const qint64 rndSpeed = rndSum / (rndTime + 1); + qDebug() << seqSum / seqTime << " " << rndSum / rndTime; + emit logMessage(trUtf8("Seq: %1KiB/s, Random: %2KiB/s - [%3s / %4s]") + .arg(QString::number(seqSpeed), QString::number(rndSpeed), + QString::number(seqTime / 1000), QString::number(rndTime / 1000))); + } + // All done delete[] buffer; _file->close(); } |