performance.txt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. Performance comparison
  2. ----------------------
  3. Here is a rough performance comparision of several JSON packages
  4. available for Lua:
  5. - DKJSON 1.0: One of the fastest pure Lua JSON implementations.
  6. - LuaJSON 1.0: A mixed Lua/C JSON implementation using LPeg.
  7. - CSJON 1.0: Pure C.
  8. The example JSON files used were taken from http://json.org/ and
  9. RFC 4627.
  10. === DKJSON === == LuaJSON === === CJSON ====
  11. == Decoding == Lua LuaJIT Lua LuaJIT Lua LuaJIT
  12. example1.json 1.0x 1.9x 3.4x 3.9x 12.3x 13.7x
  13. example2.json 1.0x 2.0x 3.6x 4.6x 12.2x 20.0x
  14. example3.json 1.0x 2.0x 3.9x 4.7x 13.1x 18.8x
  15. example4.json 1.0x 1.8x 3.7x 4.4x 11.9x 17.0x
  16. example5.json 1.0x 1.5x 4.0x 4.8x 14.6x 22.2x
  17. rfc-example1.json 1.0x 1.5x 3.2x 4.3x 11.7x 16.9x
  18. rfc-example2.json 1.0x 1.5x 3.7x 4.5x 10.3x 19.4x
  19. == Average ==> 1.0x 1.7x 3.5x 4.2x 11.3x 16.5x
  20. == Encoding ==
  21. example1.json 1.0x 1.8x 0.6x 1.4x 23.5x 23.4x
  22. example2.json 1.0x 2.0x 0.5x 1.2x 22.4x 22.4x
  23. example3.json 1.0x 1.8x 0.6x 1.3x 10.8x 13.4x
  24. example4.json 1.0x 1.2x 0.7x 1.5x 15.7x 17.2x
  25. example5.json 1.0x 1.5x 0.6x 1.4x 22.1x 20.4x
  26. rfc-example1.json 1.0x 1.4x 0.5x 1.1x 8.9x 9.2x
  27. rfc-example2.json 1.0x 1.4x 0.6x 1.3x 10.4x 10.9x
  28. == Average ==> 1.0x 1.6x 0.6x 1.3x 17.0x 17.2x
  29. CJSON spends a significant amount of time calling sprintf() to convert
  30. doubles to strings while encoding "rfc-example1.json". Hence it only
  31. shows a 9x improvement in this case.
  32. The performance gains available can vary widely. If performance is
  33. critical, I would recommend testing in a relevant environment with
  34. your intended data.