mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-23 15:25:35 +08:00
Sample reg. JSON performance
* DB JSON vs. swift JSON * Database reader: own function for stringToDatastoreResponse so it can be reused
This commit is contained in:
@@ -11,6 +11,9 @@
|
||||
//! \ingroup sampleblackmisc
|
||||
|
||||
#include "samplesperformance.h"
|
||||
#include "blackcore/db/databasereader.h"
|
||||
#include "blackconfig/buildconfig.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
#include "blackmisc/aviation/aircraftsituation.h"
|
||||
#include "blackmisc/aviation/aircraftsituationlist.h"
|
||||
#include "blackmisc/aviation/altitude.h"
|
||||
@@ -41,6 +44,9 @@ using namespace BlackMisc;
|
||||
using namespace BlackMisc::Aviation;
|
||||
using namespace BlackMisc::Geo;
|
||||
using namespace BlackMisc::PhysicalQuantities;
|
||||
using namespace BlackMisc::Simulation;
|
||||
using namespace BlackConfig;
|
||||
using namespace BlackCore::Db;
|
||||
|
||||
namespace BlackSample
|
||||
{
|
||||
@@ -342,6 +348,39 @@ namespace BlackSample
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CSamplesPerformance::samplesJsonModel(QTextStream &out)
|
||||
{
|
||||
const QString dir = CBuildConfig::getSwiftStaticDbFilesDir();
|
||||
const QString file = QDir(dir).filePath("models.json");
|
||||
QFile modelFile(file);
|
||||
Q_ASSERT_X(modelFile.exists(), Q_FUNC_INFO, "Model file does not exist");
|
||||
|
||||
out << "Load DB JSON file " << modelFile.fileName() << endl;
|
||||
const QString data = CFileUtils::readFileToString(modelFile.fileName());
|
||||
Q_ASSERT_X(!data.isEmpty(), Q_FUNC_INFO, "Model file empty");
|
||||
|
||||
// DB format, all models denormalized in DB JSON format
|
||||
CDatabaseReader::JsonDatastoreResponse response = CDatabaseReader::stringToDatastoreResponse(data);
|
||||
QTime timer;
|
||||
timer.start();
|
||||
const CAircraftModelList dbModels = CAircraftModelList::fromDatabaseJson(response);
|
||||
int ms = timer.elapsed();
|
||||
out << "Read via DB JSON format: " << dbModels.size() << " models in " << ms << "ms" << endl;
|
||||
|
||||
// swift JSON format
|
||||
const QJsonObject swiftJsonObject = dbModels.toJson();
|
||||
out << "Converted to swift JSON" << endl;
|
||||
|
||||
CAircraftModelList swiftModels;
|
||||
timer.start();
|
||||
swiftModels.convertFromJson(swiftJsonObject);
|
||||
ms = timer.elapsed();
|
||||
out << "Read via swift JSON format: " << swiftModels.size() << " models in " << ms << "ms" << endl;
|
||||
|
||||
Q_ASSERT_X(swiftModels.size() == dbModels.size(), Q_FUNC_INFO, "Mismatching container size");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CSamplesPerformance::samplesString(QTextStream &out)
|
||||
{
|
||||
QTime timer;
|
||||
|
||||
Reference in New Issue
Block a user