qemu-e2k/qobject
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
..
json-lexer.c qjson: replace QString in JSONLexer with GString 2015-11-26 09:31:22 +01:00
json-parser.c qjson: surprise, allocating 6 QObjects per token is expensive 2015-11-26 10:07:07 +01:00
json-streamer.c qjson: surprise, allocating 6 QObjects per token is expensive 2015-11-26 10:07:07 +01:00
Makefile.objs qerror: Finally unused, clean up 2015-06-22 18:20:40 +02:00
qbool.c qbool: Make conversion from QObject * accept null 2015-10-29 14:34:44 +01:00
qdict.c qstring: Make conversion from QObject * accept null 2015-10-29 14:34:45 +01:00
qfloat.c qfloat qint: Make conversion from QObject * accept null 2015-10-29 14:34:45 +01:00
qint.c qfloat qint: Make conversion from QObject * accept null 2015-10-29 14:34:45 +01:00
qjson.c qjson: store tokens in a GQueue 2015-11-26 10:07:07 +01:00
qlist.c qlist: Make conversion from QObject * accept null 2015-10-29 14:34:45 +01:00
qnull.c qobject: Add a special null QObject 2015-05-11 08:59:07 -04:00
qstring.c qstring: Make conversion from QObject * accept null 2015-10-29 14:34:45 +01:00