qemu/include/qapi/qmp
Paolo Bonzini 9bada89711 qjson: surprise, allocating 6 QObjects per token is expensive
Replace the contents of the tokens GQueue with a simple struct.  This cuts
the amount of memory allocated by tests/check-qjson from ~500MB to ~20MB,
and the execution time from 600ms to 80ms on my laptop.  Still a lot (some
could be saved by using an intrusive list, such as QSIMPLEQ, instead of
the GQueue), but the savings are already massive and the right thing to
do would probably be to get rid of json-streamer completely.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1448300659-23559-5-git-send-email-pbonzini@redhat.com>
[Straightforwardly rebased on my patches]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2015-11-26 10:07:07 +01:00
..
dispatch.h qmp hmp: Consistently name Error * objects err, and not errp 2014-05-08 14:20:00 -04:00
json-lexer.h qjson: replace QString in JSONLexer with GString 2015-11-26 09:31:22 +01:00
json-parser.h qjson: store tokens in a GQueue 2015-11-26 10:07:07 +01:00
json-streamer.h qjson: surprise, allocating 6 QObjects per token is expensive 2015-11-26 10:07:07 +01:00
qbool.h qobject: Drop QObject_HEAD 2015-10-29 14:34:44 +01:00
qdict.h qobject: Drop QObject_HEAD 2015-10-29 14:34:44 +01:00
qerror.h replay: replay blockers for devices 2015-11-06 10:16:03 +01:00
qfloat.h qobject: Drop QObject_HEAD 2015-10-29 14:34:44 +01:00
qint.h qobject: Drop QObject_HEAD 2015-10-29 14:34:44 +01:00
qjson.h qjson.h: Remove spurious GCC_FMT_ATTR markup from qobject_from_json() declaration 2014-03-03 09:45:46 +04:00
qlist.h qobject: Drop QObject_HEAD 2015-10-29 14:34:44 +01:00
qobject.h qobject: Protect against use-after-free in qobject_decref() 2015-11-09 16:45:05 +01:00
qstring.h qobject: Drop QObject_HEAD 2015-10-29 14:34:44 +01:00
types.h qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00