From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 15BD715F7CE3; Fri, 24 Oct 2025 13:54:46 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 15BD715F7CE3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1761303286; bh=H2Q26DGx7XStWFnenl0v69uyCFUdaB9GX2Xhfn4+7nA=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=ckoWdl1D5bQMwthy5lkHu8Xs+AKwx2k0V6hEs3u6LBR8vePeUzqOSkNU5zHPDdh2G nUO73OxN56iQ2GNq5bxMyxid0yom0yfHrCAJCk750cGguOi3wT7TAUo2ebJveipDg3 g5ZWD1TX4Xu6UzXHUqN4+tIDBEHhpEy/+p6LkpdE= Received: from send152.i.mail.ru (send152.i.mail.ru [89.221.237.247]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 55EF415B1F7E for ; Fri, 24 Oct 2025 13:50:54 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 55EF415B1F7E Received: by exim-smtp-855f5997bb-88mr2 with esmtpa (envelope-from ) id 1vCFNl-000000006vv-1RUI; Fri, 24 Oct 2025 13:50:53 +0300 To: Sergey Bronnikov Date: Fri, 24 Oct 2025 13:50:12 +0300 Message-ID: X-Mailer: git-send-email 2.51.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD9DAB542EDD08389FE6972E6A35AEC2CEF82223B772369C626182A05F53808504026129BA4BD482B803DE06ABAFEAF6705D573DD5E02E14CDA52E7C6720268728E7E11F6D7719F38BE X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7DB84ED444C624799EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566D857902A848E84F8E4F4CB7EAB2123A8282EBDC4CF679BDE7B32FDC1FF710114389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C0DCF4F0DC832992758941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6D6FBC3EC642A93BBCC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE74815913FF2B4FA25731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A52F278C89A757E52F5002B1117B3ED69609C9A7E24A1F3345A13BD6A4B0E00B96823CB91A9FED034534781492E4B8EEAD619183A7BD6BC6F1F36E2E0160E5C55395B8A2A0B6518DF68C46860778A80D548E8926FB43031F38 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CF46B5BA8A185F870D11D2F3C5F25C8DE97AD4A3FA531E36D0D8B73749C5D9E45A66401EE05C14F77D6EB503EC62A3E87FE7D5D734883821FCE2422C6CC32E61FE50E5EBB938793E0A5F4332CA8FE04980913E6812662D5F2A5EAB5682573093F7837F15F2B5E4A70B33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVRN2q9QiacRu2ABWkCJxFRc= X-DA7885C5: AD649ED748878858F255D290C0D534F98A8C70677DB4A54681A5EB77BC5CCAE55F3FD1D1230CAEC75B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD29952BA0E3B0E792211988E4495A63B6ECF0349609D016F94E49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH v1 luajit 08/41] perf: adjust euler14-bit in LuaJIT-benches X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Sergey Kaplun via Tarantool-patches Reply-To: Sergey Kaplun Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" 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/euler14-bit.lua | 52 ++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/perf/LuaJIT-benches/euler14-bit.lua b/perf/LuaJIT-benches/euler14-bit.lua index 537f2bf3..7c521deb 100644 --- a/perf/LuaJIT-benches/euler14-bit.lua +++ b/perf/LuaJIT-benches/euler14-bit.lua @@ -1,22 +1,42 @@ +local bench = require("bench").new(arg) local bit = require("bit") local bnot, bor, band = bit.bnot, bit.bor, bit.band local shl, shr = bit.lshift, bit.rshift -local N = tonumber(arg and arg[1]) or 10000000 -local cache, m, n = { 1 }, 1, 1 -if arg and arg[2] then cache = nil end -for i=2,N do - local j = i - for len=1,1000000000 do - j = bor(band(shr(j,1), band(j,1)-1), band(shl(j,1)+j+1, bnot(band(j,1)-1))) - if cache then - local x = cache[j]; if x then j = x+len; break end - elseif j == 1 then - j = len+1; break +local DEFAULT_N = 2e7 +local N = tonumber(arg and arg[1]) or DEFAULT_N +local drop_cache = arg and arg[2] + +bench:add({ + name = "euler14_bit", + payload = function() + local cache, m, n = { 1 }, 1, 1 + if drop_cache then cache = nil end + for i=2,N do + local j = i + for len=1,1000000000 do + j = bor(band(shr(j,1), band(j,1)-1), band(shl(j,1)+j+1, bnot(band(j,1)-1))) + if cache then + local x = cache[j]; if x then j = x+len; break end + elseif j == 1 then + j = len+1; break + end + end + if cache then cache[i] = j end + if j > m then m, n = j, i end + end + return {n = n, m = m} + end, + checker = function(res) + if N ~= DEFAULT_N then + -- Test only for the default. + return true + else + return res.n == 18064027 and res.m == 623 end - end - if cache then cache[i] = j end - if j > m then m, n = j, i end -end -io.write("Found ", n, " (chain length: ", m, ")\n") + end, + items = N, +}) + +bench:run_and_report() -- 2.51.0