Added extra tests to json benchmark

- Added toByteArray() and fromByteArray() benchmark tests.
  Performance tests to measure QVariantMap to bytearray
  and bytearray to QVariantMap.
  Use case: Interprocess communications via local socket

Change-Id: If5e94ff870890b2ebb665f3cc38f5c33b34547f4
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This commit is contained in:
Kurt Korbatits 2012-03-19 14:54:16 +10:00 committed by Qt by Nokia
parent df6a08951a
commit bcba6ed252

View File

@ -58,6 +58,8 @@ private Q_SLOTS:
void parseNumbers();
void parseJson();
void parseJsonToVariant();
void toByteArray();
void fromByteArray();
};
BenchmarkQtBinaryJson::BenchmarkQtBinaryJson(QObject *parent) : QObject(parent)
@ -127,6 +129,36 @@ 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();
}
}
QTEST_MAIN(BenchmarkQtBinaryJson)
#include "tst_bench_qtbinaryjson.moc"