From fcbca7b0b00ddc197d92d4c5f74ea56d66ec840b Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 20 Aug 2018 18:29:14 +0200 Subject: [PATCH] Ref T308 prephase, meaasure model parsing ttime --- src/blackcore/db/modeldatareader.cpp | 18 +++++++++++++----- src/blackmisc/db/datastore.cpp | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/blackcore/db/modeldatareader.cpp b/src/blackcore/db/modeldatareader.cpp index c0a10adcf..e86e222ac 100644 --- a/src/blackcore/db/modeldatareader.cpp +++ b/src/blackcore/db/modeldatareader.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -309,9 +310,10 @@ namespace BlackCore CLogMessage(this).error("No timestamp in livery list, setting to last modified value"); latestTimestamp = lastModifiedMsSinceEpoch(nwReply.data()); } - m_liveryCache.set(liveries, latestTimestamp); - this->updateReaderUrl(getBaseUrl(CDbFlags::DbReading)); + const CStatusMessage cacheMsg = m_liveryCache.set(liveries, latestTimestamp); + CLogMessage::preformatted(cacheMsg); + this->updateReaderUrl(getBaseUrl(CDbFlags::DbReading)); this->emitAndLogDataRead(CEntityFlags::LiveryEntity, n, res); } @@ -352,9 +354,11 @@ namespace BlackCore CLogMessage(this).error("No timestamp in distributor list, setting to last modified value"); latestTimestamp = lastModifiedMsSinceEpoch(nwReply.data()); } - m_distributorCache.set(distributors, latestTimestamp); - this->updateReaderUrl(getBaseUrl(CDbFlags::DbReading)); + const CStatusMessage cacheMsg = m_distributorCache.set(distributors, latestTimestamp); + CLogMessage::preformatted(cacheMsg); + + this->updateReaderUrl(getBaseUrl(CDbFlags::DbReading)); this->emitAndLogDataRead(CEntityFlags::DistributorEntity, n, res); } @@ -384,7 +388,10 @@ namespace BlackCore } else { + QTime time; + time.start(); models = CAircraftModelList::fromDatabaseJson(res); + CLogMessage(this).info("Parsed %1 models in %2 ms") << models.size() << time.elapsed(); } // synchronized update @@ -396,7 +403,8 @@ namespace BlackCore CLogMessage(this).error("No timestamp in model list, setting to last modified value"); latestTimestamp = lastModifiedMsSinceEpoch(nwReply.data()); } - m_modelCache.set(models, latestTimestamp); + const CStatusMessage cacheMsg = m_modelCache.set(models, latestTimestamp); + CLogMessage::preformatted(cacheMsg); this->updateReaderUrl(this->getBaseUrl(CDbFlags::DbReading)); this->emitAndLogDataRead(CEntityFlags::ModelEntity, n, res); diff --git a/src/blackmisc/db/datastore.cpp b/src/blackmisc/db/datastore.cpp index c7f65f768..574c9a10c 100644 --- a/src/blackmisc/db/datastore.cpp +++ b/src/blackmisc/db/datastore.cpp @@ -75,6 +75,7 @@ namespace BlackMisc void IDatastoreObjectWithIntegerKey::setKeyAndTimestampFromDatabaseJson(const QJsonObject &json, const QString &prefix) { + // this function is performance sensitive, as it is called for all DB data const int dbKey = json.value(prefix % QStringLiteral("id")).toInt(-1); this->setDbKey(dbKey);