From c92ecda53337490633c95e6ae00e322dc9ad1fb8 Mon Sep 17 00:00:00 2001
From: Hisham Muhammad <hisham@gobolinux.org>
Date: Mon, 10 Jun 2024 22:39:55 -0300
Subject: feature: Lua 5.3 + 5.4 integer support, with CI and conflicts fixed.

Co-Authored-By: Hisham Muhammad <hisham@gobolinux.org>
Co-authored-by: Mark Pulford <mark@kyne.com.au>
Co-authored-by: ichenq <ichenq@gmail.com>
Co-authored-by: Cloud Wu <cloudwu@gmail.com>
Co-authored-by: caijietao <t0350.prog@gmail.com>
Co-authored-by: actboy168 <actboy168@gmail.com>
Co-authored-by: wudeng <wudeng256@gmail.com>
Co-authored-by: caiyiheng <rangercyh@qq.com>
---
 performance.adoc | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)
 create mode 100644 performance.adoc

(limited to 'performance.adoc')

diff --git a/performance.adoc b/performance.adoc
new file mode 100644
index 0000000..a36412d
--- /dev/null
+++ b/performance.adoc
@@ -0,0 +1,89 @@
+JSON module performance comparison under Lua
+============================================
+Mark Pulford <mark@kyne.com.au>
+:revdate: January 22, 2012
+
+This performance comparison aims to provide a guide of relative
+performance between several fast and popular JSON modules.
+
+The examples used in this comparison were mostly sourced from the
+http://json.org[JSON website] and
+http://tools.ietf.org/html/rfc4627[RFC 4627].
+
+Performance will vary widely between platforms and data sets. These
+results should only be used as an approximation.
+
+
+Modules
+-------
+
+The following JSON modules for Lua were tested:
+
+http://chiselapp.com/user/dhkolf/repository/dkjson/[DKJSON 2.1]::
+  - Lua implementation with no dependencies on other libraries
+  - Supports LPeg to improve decode performance
+
+https://github.com/brimworks/lua-yajl[Lua YAJL 2.0]::
+  - C wrapper for the YAJL library
+
+http://www.kyne.com.au/%7Emark/software/lua-cjson.php[Lua CJSON 2.0.0]::
+  - C implementation with no dependencies on other libraries
+
+
+Summary
+-------
+
+All modules were built and tested as follows:
+
+DKJSON:: Tested with/without LPeg 10.2.
+Lua YAJL:: Tested with YAJL 2.0.4.
+Lua CJSON:: Tested with Libc and internal floating point conversion
+  routines.
+
+The following Lua implementations were used for this comparison:
+
+- http://www.lua.org[Lua 5.1.4] (_Lua_)
+- http://www.luajit.org[LuaJIT 2.0.0-beta9] (_JIT_)
+
+These results show the number of JSON operations per second sustained by
+each module. All results have been normalised against the pure Lua
+DKJSON implementation.
+
+.Decoding performance
+............................................................................
+             | DKJSON                  | Lua YAJL   | Lua CJSON
+             | No LPeg     With LPeg   |            | Libc         Internal
+             | Lua  JIT    Lua    JIT  | Lua   JIT  | Lua   JIT    Lua   JIT
+example1     | 1x   2x     2.6x   3.4x | 7.1x  10x  | 14x   20x    14x   20x
+example2     | 1x   2.2x   2.9x   4.4x | 6.7x  9.9x | 14x   22x    14x   22x
+example3     | 1x   2.1x   3x     4.3x | 6.9x  9.3x | 14x   21x    15x   22x
+example4     | 1x   2x     2.5x   3.7x | 7.3x  10x  | 12x   19x    12x   20x
+example5     | 1x   2.2x   3x     4.5x | 7.8x  11x  | 16x   24x    16x   24x
+numbers      | 1x   2.2x   2.3x   4x   | 4.6x  5.5x | 8.9x  10x    13x   17x
+rfc-example1 | 1x   2.1x   2.8x   4.3x | 6.1x  8.1x | 13x   19x    14x   21x
+rfc-example2 | 1x   2.1x   3.1x   4.2x | 7.1x  9.2x | 15x   21x    17x   24x
+types        | 1x   2.2x   2.6x   4.3x | 5.3x  7.4x | 12x   20x    13x   21x
+-------------|-------------------------|------------|-----------------------
+= Average => | 1x   2.1x   2.7x   4.1x | 6.5x  9x   | 13x   20x    14x   21x
+............................................................................
+
+.Encoding performance
+.............................................................................
+             | DKJSON                  | Lua YAJL   | Lua CJSON
+             | No LPeg     With LPeg   |            | Libc         Internal
+             | Lua  JIT    Lua    JIT  | Lua   JIT  | Lua   JIT    Lua   JIT
+example1     | 1x   1.8x   0.97x  1.6x | 3.1x  5.2x | 23x   29x    23x   29x
+example2     | 1x   2x     0.97x  1.7x | 2.6x  4.3x | 22x   28x    22x   28x
+example3     | 1x   1.9x   0.98x  1.6x | 2.8x  4.3x | 13x   15x    16x   18x
+example4     | 1x   1.7x   0.96x  1.3x | 3.9x  6.1x | 15x   19x    17x   21x
+example5     | 1x   2x     0.98x  1.7x | 2.7x  4.5x | 20x   23x    20x   23x
+numbers      | 1x   2.3x   1x     2.2x | 1.3x  1.9x | 3.8x  4.1x   4.2x  4.6x
+rfc-example1 | 1x   1.9x   0.97x  1.6x | 2.2x  3.2x | 8.5x  9.3x   11x   12x
+rfc-example2 | 1x   1.9x   0.98x  1.6x | 2.6x  3.9x | 10x   11x    17x   19x
+types        | 1x   2.2x   0.97x  2x   | 1.2x  1.9x | 11x   13x    12x   14x
+-------------|-------------------------|------------|-----------------------
+= Average => | 1x   1.9x   0.98x  1.7x | 2.5x  3.9x | 14x   17x    16x   19x
+.............................................................................
+
+
+// vi:ft=asciidoc tw=72:
-- 
cgit v1.2.3-55-g6feb

