From 21a9a3442bc1d0c197ef2314fa2649569ebceab4 Mon Sep 17 00:00:00 2001 From: Ioannis Christoforidis Date: Wed, 27 Nov 2019 20:13:13 +0100 Subject: update output to also show KiB if connection gets slow --- src/copythread.cpp | 28 ++++++++++++++++++---------- src/speedcheck.cpp | 13 ++++++++++++- src/speedcheck.h | 1 + src/ui/speedcheck.ui | 45 ++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 75 insertions(+), 12 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(); } diff --git a/src/speedcheck.cpp b/src/speedcheck.cpp index 882eeab..45a5c85 100644 --- a/src/speedcheck.cpp +++ b/src/speedcheck.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -27,6 +28,8 @@ SpeedCheck::SpeedCheck(QString fileName) connect(_ui->btnStart, SIGNAL(clicked(bool)), this, SLOT(startClicked(bool))); connect(_ui->btnQuit, SIGNAL(clicked(bool)), this, SLOT(quitClicked(bool))); + connect(_ui->btnselect, SIGNAL(clicked(bool)), this, SLOT(selectClicked(bool))); + _ui->filelabel->setText("Selected File: " + _fileName); _timer.setInterval(200); connect(&_timer, SIGNAL(timeout()), this, SLOT(updateTimer())); qsrand((uint)QCoreApplication::applicationPid()); @@ -42,10 +45,14 @@ void SpeedCheck::logMessage(QString message) qDebug() << message; _ui->statusBar->showMessage(message); } +void SpeedCheck::selectClicked(bool) { + _fileName = QFileDialog::getOpenFileName(this, tr("Select benchmark file")); + _ui->filelabel->setText("Selected File: " + _fileName); +} void SpeedCheck::startClicked(bool) { - QFile *file = new QFile(_fileName); + QFile *file = new QFile(_fileName); if (!file->open(QIODevice::ReadOnly)) { QMessageBox::critical(this, trUtf8("Error"), trUtf8("Could not open %1 for reading.").arg(_fileName)); return; @@ -53,6 +60,8 @@ void SpeedCheck::startClicked(bool) _ui->picCpu->setDataSource(new CpuLoad()); _ui->picSpeed->setDataSource(new NetworkSpeed(_ui->comboBox->currentText())); _ui->btnStart->setDisabled(true); + _ui->btnselect->setDisabled(true); + _ui->comboBox->setDisabled(true); delete _thread; _thread = new CopyThread(file, this); connect(_thread, SIGNAL(logMessage(QString)), this, SLOT(logMessage(QString)), Qt::QueuedConnection); @@ -81,6 +90,8 @@ void SpeedCheck::testFinished() QCoreApplication::instance()->quit(); } _ui->btnStart->setEnabled(true); + _ui->btnselect->setEnabled(true); + _ui->comboBox->setEnabled(true); } void SpeedCheck::updateTimer() diff --git a/src/speedcheck.h b/src/speedcheck.h index fd54605..79ceb28 100644 --- a/src/speedcheck.h +++ b/src/speedcheck.h @@ -20,6 +20,7 @@ public: private slots: void logMessage(QString message); void startClicked(bool); + void selectClicked(bool); void quitClicked(bool); void testFinished(); void updateTimer(); diff --git a/src/ui/speedcheck.ui b/src/ui/speedcheck.ui index b82c3d7..2188b31 100644 --- a/src/ui/speedcheck.ui +++ b/src/ui/speedcheck.ui @@ -55,7 +55,14 @@ - + + + + 0 + 0 + + + @@ -112,6 +119,26 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Select File + + + @@ -135,6 +162,22 @@ + + + + true + + + + 0 + 0 + + + + + + + -- cgit v1.2.3-55-g7522