[Tarantool-patches] [PATCH v2 luajit 19/41] perf: adjust nsieve-bit in LuaJIT-benches
Sergey Bronnikov
sergeyb at tarantool.org
Fri Jan 2 14:00:30 MSK 2026
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 <PARAM_x86.txt> 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()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20260102/16613837/attachment.htm>
More information about the Tarantool-patches
mailing list