summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib/json/tst_bench_qtbinaryjson.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/corelib/json/tst_bench_qtbinaryjson.cpp')
-rw-r--r--tests/benchmarks/corelib/json/tst_bench_qtbinaryjson.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/benchmarks/corelib/json/tst_bench_qtbinaryjson.cpp b/tests/benchmarks/corelib/json/tst_bench_qtbinaryjson.cpp
index 2253d00778..c6956b4747 100644
--- a/tests/benchmarks/corelib/json/tst_bench_qtbinaryjson.cpp
+++ b/tests/benchmarks/corelib/json/tst_bench_qtbinaryjson.cpp
@@ -58,6 +58,12 @@ private Q_SLOTS:
void parseNumbers();
void parseJson();
void parseJsonToVariant();
+
+ void toByteArray();
+ void fromByteArray();
+
+ void jsonObjectInsert();
+ void variantMapInsert();
};
BenchmarkQtBinaryJson::BenchmarkQtBinaryJson(QObject *parent) : QObject(parent)
@@ -127,6 +133,60 @@ void BenchmarkQtBinaryJson::parseJsonToVariant()
}
}
+void BenchmarkQtBinaryJson::toByteArray()
+{
+ // Example: send information over a datastream to another process
+ // Measure performance of creating and processing data into bytearray
+ QBENCHMARK {
+ QVariantMap message;
+ message.insert("command", 1);
+ message.insert("key", "some information");
+ message.insert("env", "some environment variables");
+ QByteArray msg = QJsonDocument(QJsonObject::fromVariantMap(message)).toBinaryData();
+ }
+}
+
+void BenchmarkQtBinaryJson::fromByteArray()
+{
+ // Example: receive information over a datastream from another process
+ // Measure performance of converting content back to QVariantMap
+ // We need to recreate the bytearray but here we only want to measure the latter
+ QVariantMap message;
+ message.insert("command", 1);
+ message.insert("key", "some information");
+ message.insert("env", "some environment variables");
+ QByteArray msg = QJsonDocument(QJsonObject::fromVariantMap(message)).toBinaryData();
+
+ QBENCHMARK {
+ QVariantMap message;
+ message = QJsonDocument::fromBinaryData(msg, QJsonDocument::Validate).object().toVariantMap();
+ }
+}
+
+void BenchmarkQtBinaryJson::jsonObjectInsert()
+{
+ QJsonObject object;
+ QString test(QStringLiteral("testString"));
+ QJsonValue value(1.5);
+
+ QBENCHMARK {
+ for (int i = 0; i < 1000; i++)
+ object.insert("testkey_" + i, value);
+ }
+}
+
+void BenchmarkQtBinaryJson::variantMapInsert()
+{
+ QVariantMap object;
+ QString test(QStringLiteral("testString"));
+ QVariant variantValue(1.5);
+
+ QBENCHMARK {
+ for (int i = 0; i < 1000; i++)
+ object.insert("testkey_" + i, variantValue);
+ }
+}
+
QTEST_MAIN(BenchmarkQtBinaryJson)
#include "tst_bench_qtbinaryjson.moc"