[Tarantool-patches] [PATCH v1 luajit 00/41] LuaJIT performance testing

Sergey Kaplun skaplun at tarantool.org
Fri Oct 24 13:50:04 MSK 2025


This patchset introduces the performance testing suite for LuaJIT
benchmarks. It takes the LuaJIT test cleanup benches [1] and adapts them
to use a custom benchmark module with the GoogleBenchamark-similar
format. All results are collected and reported to InfluxDB, like it is
done for the Tarantool's tests.

The results for the following benchmarks are not very stable. It should
be investigated later (I appreciate any help with this):

* array3d
* binary-trees
* euler14-bit
* k-nukleotide
* nsieve (most unstable)
* nsieve-bit
* spectral-norm

Also, I've added notes to some commits where I'm not sure that the
implementation/solution is very good. Any insights are welcome :).

[1]: https://github.com/LuaJIT/LuaJIT-test-cleanup/tree/014708b/bench

Sergey Kaplun (41):
  perf: add LuaJIT-test-cleanup perf suite
  perf: introduce clock module
  perf: introduce bench module
  perf: adjust array3d in LuaJIT-benches
  perf: adjust binary-trees in LuaJIT-benches
  perf: adjust chameneos in LuaJIT-benches
  perf: adjust coroutine-ring in LuaJIT-benches
  perf: adjust euler14-bit in LuaJIT-benches
  perf: adjust fannkuch in LuaJIT-benches
  perf: adjust fasta in LuaJIT-benches
  perf: adjust k-nucleotide in LuaJIT-benches
  perf: adjust life in LuaJIT-benches
  perf: adjust mandelbrot-bit in LuaJIT-benches
  perf: adjust mandelbrot in LuaJIT-benches
  perf: adjust md5 in LuaJIT-benches
  perf: adjust meteor in LuaJIT-benches
  perf: adjust nbody in LuaJIT-benches
  perf: adjust nsieve-bit-fp in LuaJIT-benches
  perf: adjust nsieve-bit in LuaJIT-benches
  perf: adjust nsieve in LuaJIT-benches
  perf: adjust partialsums in LuaJIT-benches
  perf: adjust pidigits-nogmp in LuaJIT-benches
  perf: adjust ray in LuaJIT-benches
  perf: adjust recursive-ack in LuaJIT-benches
  perf: adjust recursive-fib in LuaJIT-benches
  perf: adjust revcomp in LuaJIT-benches
  perf: adjust scimark-2010-12-20 in LuaJIT-benches
  perf: move <scimark_lib.lua> to <libs/> directory
  perf: adjust scimark-fft in LuaJIT-benches
  perf: adjust scimark-lu in LuaJIT-benches
  perf: add scimark-mc in LuaJIT-benches
  perf: adjust scimark-sor in LuaJIT-benches
  perf: adjust scimark-sparse in LuaJIT-benches
  perf: adjust series in LuaJIT-benches
  perf: adjust spectral-norm in LuaJIT-benches
  perf: adjust sum-file in LuaJIT-benches
  perf: add CMake infrastructure
  perf: add aggregator helper for bench statistics
  perf: add a script for the environment setup
  perf: provide CMake option to setup the benchmark
  ci: introduce the performance workflow

 .github/actions/setup-performance/README.md  |   10 +
 .github/actions/setup-performance/action.yml |   18 +
 .github/workflows/performance.yml            |  110 ++
 .gitignore                                   |    5 +
 .luacheckrc                                  |    1 +
 CMakeLists.txt                               |   11 +
 perf/CMakeLists.txt                          |  119 +++
 perf/LuaJIT-benches/CMakeLists.txt           |   52 +
 perf/LuaJIT-benches/PARAM_arm.txt            |   29 +
 perf/LuaJIT-benches/PARAM_mips.txt           |   29 +
 perf/LuaJIT-benches/PARAM_ppc.txt            |   29 +
 perf/LuaJIT-benches/PARAM_x86.txt            |   29 +
 perf/LuaJIT-benches/SUMCOL_1.txt             | 1000 ++++++++++++++++++
 perf/LuaJIT-benches/TEST_md5sum.txt          |   20 +
 perf/LuaJIT-benches/array3d.lua              |   74 ++
 perf/LuaJIT-benches/binary-trees.lua         |  105 ++
 perf/LuaJIT-benches/chameneos.lua            |   82 ++
 perf/LuaJIT-benches/coroutine-ring.lua       |   53 +
 perf/LuaJIT-benches/euler14-bit.lua          |   42 +
 perf/LuaJIT-benches/fannkuch.lua             |   81 ++
 perf/LuaJIT-benches/fasta.lua                |   29 +
 perf/LuaJIT-benches/k-nucleotide.lua         |  129 +++
 perf/LuaJIT-benches/libs/fasta.lua           |   98 ++
 perf/LuaJIT-benches/libs/scimark_lib.lua     |  297 ++++++
 perf/LuaJIT-benches/life.lua                 |  188 ++++
 perf/LuaJIT-benches/mandelbrot-bit.lua       |   61 ++
 perf/LuaJIT-benches/mandelbrot.lua           |   49 +
 perf/LuaJIT-benches/md5.lua                  |  196 ++++
 perf/LuaJIT-benches/meteor.lua               |  246 +++++
 perf/LuaJIT-benches/nbody.lua                |  140 +++
 perf/LuaJIT-benches/nsieve-bit-fp.lua        |   62 ++
 perf/LuaJIT-benches/nsieve-bit.lua           |   52 +
 perf/LuaJIT-benches/nsieve.lua               |   46 +
 perf/LuaJIT-benches/partialsums.lua          |   44 +
 perf/LuaJIT-benches/pidigits-nogmp.lua       |  121 +++
 perf/LuaJIT-benches/ray.lua                  |  159 +++
 perf/LuaJIT-benches/recursive-ack.lua        |   23 +
 perf/LuaJIT-benches/recursive-fib.lua        |   31 +
 perf/LuaJIT-benches/revcomp.lua              |   59 ++
 perf/LuaJIT-benches/scimark-2010-12-20.lua   |  415 ++++++++
 perf/LuaJIT-benches/scimark-fft.lua          |   18 +
 perf/LuaJIT-benches/scimark-lu.lua           |   19 +
 perf/LuaJIT-benches/scimark-mc.lua           |   19 +
 perf/LuaJIT-benches/scimark-sor.lua          |   19 +
 perf/LuaJIT-benches/scimark-sparse.lua       |   19 +
 perf/LuaJIT-benches/series.lua               |   42 +
 perf/LuaJIT-benches/spectral-norm.lua        |   58 +
 perf/LuaJIT-benches/sum-file.lua             |   25 +
 perf/helpers/aggregate.lua                   |  124 +++
 perf/helpers/setup_env.sh                    |  135 +++
 perf/utils/bench.lua                         |  509 +++++++++
 perf/utils/clock.lua                         |   35 +
 52 files changed, 5366 insertions(+)
 create mode 100644 .github/actions/setup-performance/README.md
 create mode 100644 .github/actions/setup-performance/action.yml
 create mode 100644 .github/workflows/performance.yml
 create mode 100644 perf/CMakeLists.txt
 create mode 100644 perf/LuaJIT-benches/CMakeLists.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_arm.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_mips.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_ppc.txt
 create mode 100644 perf/LuaJIT-benches/PARAM_x86.txt
 create mode 100644 perf/LuaJIT-benches/SUMCOL_1.txt
 create mode 100644 perf/LuaJIT-benches/TEST_md5sum.txt
 create mode 100644 perf/LuaJIT-benches/array3d.lua
 create mode 100644 perf/LuaJIT-benches/binary-trees.lua
 create mode 100644 perf/LuaJIT-benches/chameneos.lua
 create mode 100644 perf/LuaJIT-benches/coroutine-ring.lua
 create mode 100644 perf/LuaJIT-benches/euler14-bit.lua
 create mode 100644 perf/LuaJIT-benches/fannkuch.lua
 create mode 100644 perf/LuaJIT-benches/fasta.lua
 create mode 100644 perf/LuaJIT-benches/k-nucleotide.lua
 create mode 100644 perf/LuaJIT-benches/libs/fasta.lua
 create mode 100644 perf/LuaJIT-benches/libs/scimark_lib.lua
 create mode 100644 perf/LuaJIT-benches/life.lua
 create mode 100644 perf/LuaJIT-benches/mandelbrot-bit.lua
 create mode 100644 perf/LuaJIT-benches/mandelbrot.lua
 create mode 100644 perf/LuaJIT-benches/md5.lua
 create mode 100644 perf/LuaJIT-benches/meteor.lua
 create mode 100644 perf/LuaJIT-benches/nbody.lua
 create mode 100644 perf/LuaJIT-benches/nsieve-bit-fp.lua
 create mode 100644 perf/LuaJIT-benches/nsieve-bit.lua
 create mode 100644 perf/LuaJIT-benches/nsieve.lua
 create mode 100644 perf/LuaJIT-benches/partialsums.lua
 create mode 100644 perf/LuaJIT-benches/pidigits-nogmp.lua
 create mode 100644 perf/LuaJIT-benches/ray.lua
 create mode 100644 perf/LuaJIT-benches/recursive-ack.lua
 create mode 100644 perf/LuaJIT-benches/recursive-fib.lua
 create mode 100644 perf/LuaJIT-benches/revcomp.lua
 create mode 100644 perf/LuaJIT-benches/scimark-2010-12-20.lua
 create mode 100644 perf/LuaJIT-benches/scimark-fft.lua
 create mode 100644 perf/LuaJIT-benches/scimark-lu.lua
 create mode 100644 perf/LuaJIT-benches/scimark-mc.lua
 create mode 100644 perf/LuaJIT-benches/scimark-sor.lua
 create mode 100644 perf/LuaJIT-benches/scimark-sparse.lua
 create mode 100644 perf/LuaJIT-benches/series.lua
 create mode 100644 perf/LuaJIT-benches/spectral-norm.lua
 create mode 100644 perf/LuaJIT-benches/sum-file.lua
 create mode 100644 perf/helpers/aggregate.lua
 create mode 100755 perf/helpers/setup_env.sh
 create mode 100644 perf/utils/bench.lua
 create mode 100644 perf/utils/clock.lua

-- 
2.51.0



More information about the Tarantool-patches mailing list