Hi, Sergey,
thanks for the patch!
Sergey
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 | 35 +++++++++++++++++++++++++-----
1 file changed, 30 insertions(+), 5 deletions(-)
diff --git a/perf/LuaJIT-benches/nsieve-bit.lua b/perf/LuaJIT-benches/nsieve-bit.lua
index 820a3726..4858e9e2 100644
--- a/perf/LuaJIT-benches/nsieve-bit.lua
+++ b/perf/LuaJIT-benches/nsieve-bit.lua
@@ -1,3 +1,4 @@
+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 +18,35 @@ local function nsieve(p, m)
return count
end
-local N = tonumber(arg and arg[1]) or 1
+local DEFAULT_N = 12
Why 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
add more whitespaces, here and below
- local m = (2^(N-i))*10000
- io.write(string.format("Primes up to %8d %8d\n", m, nsieve(primes, m)))
io.write is lost, is it intentional?
-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
add more whitespaces
+ 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()