[Interest] Faster QXmlStreamWriter?
thiago.macieira at intel.com
Wed Apr 25 08:43:11 CEST 2018
On Tuesday, 24 April 2018 22:48:03 PDT alexander golks wrote:
> when using QJsonDocument you may/should pay attention to QtQTBUG-47629:
> QJsonObject size maximum length 128MB
That's one of the reasons I'm adding CBOR support. The new implementation
scales much better than the binary JSON memory and on-disk format and has no
such limitation. Plus it's a standardised format, defined by the IETF and used
several new IoT protocols.
Since it uses QVector internally, it's currently limited to 2 GB vectors per
level, so each CBOR array can contain at most 2^31 / 16 = 2^27 elements. But
that's on each level: each element can be an array of 2^27 elements again.
Maps are limited to half that, so 2^26. There's also a limit on the total size
of strings in a map or array.
The code was carefully written so that in Qt 6, when we switch to 64-bit size
types for Qt containers, the limitations disappear.
And better: since CBOR is a full superset of JSON, the backend can be used to
hold JSON too. So Qt 6 QJsonDocument & family will have the 128 MB limit
removed, at the expense of the binary JSON format requiring parsing.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Interest