Hi, Sergey!
thanks for the patch!
This patch adjusts the aforementioned test to use the benchmark
framework introduced before. The default arguments are adjusted
according to the <PARAM_x86.txt> 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 in arr: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 in arr: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.