Hi, Sergey! thanks for the patch! On 10/24/25 13:50, Sergey Kaplun wrote: > This patch adjusts the aforementioned test to use the benchmark > framework introduced before. The default arguments are adjusted > according to the file. The arguments to the script still > can be provided in the command line run. > > The number of iterations is fixed for this test to avoid OOM errors > for the non-GC64 builds. > --- > perf/LuaJIT-benches/array3d.lua | 25 ++++++++++++++++++++----- > 1 file changed, 20 insertions(+), 5 deletions(-) > > diff --git a/perf/LuaJIT-benches/array3d.lua b/perf/LuaJIT-benches/array3d.lua > index c10b09b1..75ab5b01 100644 > --- a/perf/LuaJIT-benches/array3d.lua > +++ b/perf/LuaJIT-benches/array3d.lua > @@ -1,3 +1,4 @@ > +local bench = require("bench").new(arg) > > local function array_set(self, x, y, z, p) > assert(x >= 0 and x < self.nx, "x outside PA") > @@ -50,10 +51,24 @@ end > > local dim = tonumber(arg and arg[1]) or 300 -- Array dimension dim^3 > local packed = arg and arg[2] == "packed" -- Packed image or flat > -local arr = array_new(dim, dim, dim, packed) > > -for x,y,z inarr:points() do > -arr:set(x, y, z, x*x) > -end > -assert(arr.image[dim^3-1] == (dim-1)^2) > +bench:add({ > + name = "array3d", > + checker = function(arr) > + assert(arr.image[dim^3-1] == (dim-1)^2) > + return true > + end, > + payload = function() > + local arr = array_new(dim, dim, dim, packed) > + for x,y,z inarr:points() do please add whitespaces after commas > +arr:set(x, y, z, x*x) > + end > + return arr > + end, > + items = dim * dim * dim, > + -- Limit the number of iterations to avoid OOM errors for > + -- non-GC64 builds. > + iterations = 5, > +}) > > +bench:run_and_report() Looks like benchmark min time does not work as expected: [1] ~/sources/MRG/tarantool/third_party/luajit $ time ./build/src/luajit perf/LuaJIT-benches/array3d.lua --benchmark_min_time=10 ------------------------------------------------------------------------------------------------------------- Benchmark                                     Time  CPU    Iterations UserCounters... ------------------------------------------------------------------------------------------------------------- array3d                                     2.10 s          2.13 s             5 items_per_second=64.370M/s real    0m2.333s user    0m1.869s sys     0m0.461s [1] ~/sources/MRG/tarantool/third_party/luajit $ --benchmark_min_time set to 10 sec, but benchmark.lua reports "2.10 s" and time reported by `time` utility is less than 10 sec.