From 0fb7603b58a35f1c00f4c2afd8f49e57270e7f24 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Tue, 23 Aug 2016 17:10:03 +0100 Subject: [PATCH] refs #721 JSON performance samples. --- samples/blackmisc/main.cpp | 2 ++ samples/blackmisc/samplesperformance.cpp | 16 ++++++++++++++++ samples/blackmisc/samplesperformance.h | 3 +++ 3 files changed, 21 insertions(+) diff --git a/samples/blackmisc/main.cpp b/samples/blackmisc/main.cpp index 87bdeef27..dc85c2382 100644 --- a/samples/blackmisc/main.cpp +++ b/samples/blackmisc/main.cpp @@ -48,6 +48,7 @@ int main(int argc, char *argv[]) qtout << "6b .. 25/100 Performance impl. type" << endl; qtout << "6c .. 25/20 Performance impl. type" << endl; qtout << "6d .. 40/20 Interpolator scenario" << endl; + qtout << "6e .. JSON performance" << endl; qtout << "7 .. Algorithms" << endl; qtout << "-----" << endl; qtout << "x .. Bye" << endl; @@ -61,6 +62,7 @@ int main(int argc, char *argv[]) else if (s.startsWith("6b")) { CSamplesPerformance::samplesImplementationType(qtout, 25, 100); } else if (s.startsWith("6c")) { CSamplesPerformance::samplesImplementationType(qtout, 25, 20); } else if (s.startsWith("6d")) { CSamplesPerformance::interpolatorScenario(qtout, 40, 20); } + else if (s.startsWith("6e")) { CSamplesPerformance::samplesJson(qtout); } else if (s.startsWith("7")) { CSamplesAlgorithm::samples(); } else if (s.startsWith("x")) { break; } } diff --git a/samples/blackmisc/samplesperformance.cpp b/samples/blackmisc/samplesperformance.cpp index 1292e3ea1..c5a65c51d 100644 --- a/samples/blackmisc/samplesperformance.cpp +++ b/samples/blackmisc/samplesperformance.cpp @@ -324,6 +324,22 @@ namespace BlackSample return 0; } + int CSamplesPerformance::samplesJson(QTextStream &out) + { + QTime timer; + auto situations = createSituations(0, 10000, 10); + + timer.start(); + QString s = situations.toJsonString(); + out << "Convert 100,000 aircraft situations to JSON: " << timer.elapsed() << "ms" << endl; + + timer.start(); + situations.convertFromJson(s); + out << "Convert 100,000 aircraft situations from JSON: " << timer.elapsed() << "ms" << endl << endl; + + return 0; + } + CAircraftSituationList CSamplesPerformance::createSituations(qint64 baseTimeEpoch, int numberOfCallsigns, int numberOfTimes) { CAircraftSituationList situations; diff --git a/samples/blackmisc/samplesperformance.h b/samples/blackmisc/samplesperformance.h index df0756c23..f1d5e5a2c 100644 --- a/samples/blackmisc/samplesperformance.h +++ b/samples/blackmisc/samplesperformance.h @@ -35,6 +35,9 @@ namespace BlackSample //! Interpolator scenario static int interpolatorScenario(QTextStream &out, int numberOfCallsigns, int numberOfTimes); + //! JSON (de)serialization + static int samplesJson(QTextStream &out); + //! Situation values for testing static BlackMisc::Aviation::CAircraftSituationList createSituations(qint64 baseTimeEpoch, int numberOfCallsigns, int numberOfTimes);