[Tarantool-patches] [PATCH v2 luajit 00/41] LuaJIT performance testing
Sergey Bronnikov
sergeyb at tarantool.org
Thu Jan 15 15:28:53 MSK 2026
Sergey,
thanks for the patch series! LGTM
Sergey
On 12/26/25 12:17, Sergey Kaplun wrote:
> 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
>
> ---
>
> Changes in the v2:
>
> * Added the comments with the benchmark descriptions.
> * Fixed code style mentioned by Sergey for the chunks that were touched
> during adjusting.
> * Code style fixes.
> * Fixed <coroutine-ring.lua> and <ray.lua> benchmark performance.
> * Fixed naming of the CI workflow (incorrect JOFF flag).
> * Fixed naming of the <meteor.lua> benchmark "subbench"
> "meteror" -> "meteor".
> * Decreased number of iterations in array3d from 5 to 4 due to OOM
> errors.
> * Rebased the branch on the current master branch.
>
> Also, it is worth mentioning that array3d with 5 iterations in JOFF
> non-GC64 mode may lead to the core dump [2]. Since it is rather rare
> flak and the number of iterations is decreased, it can be ignored for
> now, I suppose.
>
> [2]:https://github.com/tarantool/luajit/actions/runs/20506964003/job/58922906212#step:6:24
>
> 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 | 78 ++
> perf/LuaJIT-benches/binary-trees.lua | 120 +++
> perf/LuaJIT-benches/chameneos.lua | 88 ++
> perf/LuaJIT-benches/coroutine-ring.lua | 64 ++
> perf/LuaJIT-benches/euler14-bit.lua | 55 +
> perf/LuaJIT-benches/fannkuch.lua | 88 ++
> perf/LuaJIT-benches/fasta.lua | 35 +
> perf/LuaJIT-benches/k-nucleotide.lua | 132 +++
> perf/LuaJIT-benches/libs/fasta.lua | 105 ++
> perf/LuaJIT-benches/libs/scimark_lib.lua | 297 ++++++
> perf/LuaJIT-benches/life.lua | 194 ++++
> perf/LuaJIT-benches/mandelbrot-bit.lua | 68 ++
> perf/LuaJIT-benches/mandelbrot.lua | 55 +
> perf/LuaJIT-benches/md5.lua | 201 ++++
> perf/LuaJIT-benches/meteor.lua | 251 +++++
> perf/LuaJIT-benches/nbody.lua | 146 +++
> perf/LuaJIT-benches/nsieve-bit-fp.lua | 69 ++
> perf/LuaJIT-benches/nsieve-bit.lua | 58 +
> perf/LuaJIT-benches/nsieve.lua | 53 +
> perf/LuaJIT-benches/partialsums.lua | 48 +
> perf/LuaJIT-benches/pidigits-nogmp.lua | 128 +++
> perf/LuaJIT-benches/ray.lua | 166 +++
> perf/LuaJIT-benches/recursive-ack.lua | 28 +
> perf/LuaJIT-benches/recursive-fib.lua | 36 +
> perf/LuaJIT-benches/revcomp.lua | 71 ++
> perf/LuaJIT-benches/scimark-2010-12-20.lua | 412 ++++++++
> 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 | 46 +
> perf/LuaJIT-benches/spectral-norm.lua | 65 ++
> perf/LuaJIT-benches/sum-file.lua | 29 +
> perf/helpers/aggregate.lua | 132 +++
> perf/helpers/setup_env.sh | 135 +++
> perf/utils/bench.lua | 511 +++++++++
> perf/utils/clock.lua | 35 +
> 52 files changed, 5555 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20260115/effdf6dd/attachment.htm>
More information about the Tarantool-patches
mailing list