Find file
Fetching contributors…
Cannot retrieve contributors at this time
52 lines (41 sloc) 1.97 KB
JSON Performance Comparison under Lua
The following JSON packages for Lua were tested:
- DKJSON 1.0: One of the fastest pure Lua JSON implementations.
- LuaJSON 1.0: A mixed Lua/C JSON implementation using LPeg.
- Lua YAJL 2.0: A Lua wrapper for the YAJL JSON library.
- CSJON 1.0.2: Pure C.
LuaJSON 1.2.2 appeared to be slower during initial testing, so 1.0 was
used instead.
The following Lua implementations were used for this comparison:
- Lua 5.1.4
- LuaJIT 2.0.0-beta7
The example JSON files used were taken from and
RFC 4627.
DKJSON 1.0 LuaJSON 1.0 LuaYAJL 2.0 CJSON 1.0.2
== Decoding == Lua LuaJIT Lua LuaJIT Lua LuaJIT Lua LuaJIT
example1 1.0x 2.0x 3.4x 4.0x 7.1x 10.1x 13.2x 19.4x
example2 1.0x 2.1x 3.5x 4.5x 6.6x 9.8x 12.7x 20.0x
example3 1.0x 2.0x 3.9x 4.7x 7.0x 9.4x 13.2x 19.3x
example4 1.0x 1.9x 3.7x 4.4x 7.4x 10.6x 11.8x 18.0x
example5 1.0x 2.1x 4.0x 4.7x 7.7x 11.4x 14.7x 22.3x
numbers 1.0x 2.1x 2.1x 3.4x 4.6x 5.7x 8.6x 10.4x
rfc-example1 1.0x 2.0x 3.2x 4.2x 5.8x 8.2x 11.8x 17.7x
rfc-example2 1.0x 2.0x 3.6x 4.5x 7.0x 9.3x 14.5x 20.5x
types 1.0x 2.1x 2.3x 3.5x 4.9x 7.6x 10.7x 17.2x
== Average ==> 1.0x 2.0x 3.3x 4.2x 6.4x 9.1x 12.4x 18.3x
== Encoding ==
example1 1.0x 1.9x 0.6x 1.4x 3.5x 5.6x 23.1x 29.1x
example2 1.0x 2.0x 0.5x 1.2x 3.0x 4.9x 23.4x 28.5x
example3 1.0x 1.8x 0.6x 1.3x 3.0x 4.7x 13.3x 14.9x
example4 1.0x 1.7x 0.7x 1.5x 4.2x 6.6x 15.4x 18.5x
example5 1.0x 2.0x 0.6x 1.4x 3.4x 5.5x 22.7x 25.5x
numbers 1.0x 2.4x 0.4x 0.9x 1.4x 2.1x 4.3x 4.6x
rfc-example1 1.0x 1.9x 0.5x 1.2x 2.3x 3.6x 8.8x 9.6x
rfc-example2 1.0x 1.9x 0.6x 1.3x 2.8x 4.3x 10.7x 10.7x
types 1.0x 2.4x 0.3x 0.7x 1.4x 2.3x 11.7x 11.3x
== Average ==> 1.0x 2.0x 0.6x 1.2x 2.8x 4.4x 14.8x 17.0x
Number conversion is a relatively expensive operation. Number heavy
JSON will show less performance difference between libraries.
Performance can vary widely between platforms and data sets. These
results should only be considered as a rough guide.