Hi, Sergey! thanks for the patch! LGTM Sergey On 12/26/25 12:17, 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. > --- > perf/LuaJIT-benches/nsieve-bit.lua | 41 ++++++++++++++++++++++++++---- > 1 file changed, 36 insertions(+), 5 deletions(-) > > diff --git a/perf/LuaJIT-benches/nsieve-bit.lua b/perf/LuaJIT-benches/nsieve-bit.lua > index 820a3726..0f6e49c8 100644 > --- a/perf/LuaJIT-benches/nsieve-bit.lua > +++ b/perf/LuaJIT-benches/nsieve-bit.lua > @@ -1,3 +1,10 @@ > +-- Benchmark to check the performance of bitwise arithmetics and > +-- access to the array structure. This benchmark finds all prime > +-- numbers in a given segment. This is the bit variation. > +-- For the details see: > +--https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes > + > +local bench = require("bench").new(arg) > > local bit = require("bit") > local band, bxor, rshift, rol = bit.band, bit.bxor, bit.rshift, bit.rol > @@ -17,11 +24,35 @@ local function nsieve(p, m) > return count > end > > -local N = tonumber(arg and arg[1]) or 1 > +local DEFAULT_N = 12 > +local N = tonumber(arg and arg[1]) or DEFAULT_N > if N < 2 then N = 2 end > local primes = {} > > -for i=0,2 do > - local m = (2^(N-i))*10000 > - io.write(string.format("Primes up to %8d %8d\n", m, nsieve(primes, m))) > -end > +local benchmark > +benchmark = { > + name = "nsieve_bit", > + payload = function() > + local res = {} > + local items = 0 > + for i = 0, 2 do > + local m = (2 ^ (N - i)) * 10000 > + items = items + m > + res[i] = nsieve(primes, m) > + end > + benchmark.items = items > + > + return res > + end, > + checker = function(res) > + if N == DEFAULT_N then > + assert(res[0] == 2488465) > + assert(res[1] == 1299069) > + assert(res[2] == 679461) > + end > + return true > + end, > +} > + > +bench:add(benchmark) > +bench:run_and_report()