summaryrefslogtreecommitdiffstats
path: root/src/copythread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/copythread.cpp')
-rw-r--r--src/copythread.cpp28
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();
}