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 935C515FB90E; Fri, 24 Oct 2025 14:01:16 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 935C515FB90E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1761303676; bh=SItuIHByaDO/Gvg8W31bMhTyv4lFuGdpIovfNY56Bow=; 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=k0FL+0tkQjLGLYXnm15sAWErxVG1PVrkpyU2D05V6keFhoyVHzt65FYQyzNjPoBDY UgHCsDrCv0VUWtE5SiayAENpfDMv5OmF/wNxhTgBA+mcTHEd4bfQghx+RdYHVRzB7d g7Oe5vLDG15AqkaW/eCCJjHqtQcCUzgsDsXVOnDI= Received: from send81.i.mail.ru (send81.i.mail.ru [89.221.237.176]) (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 0CD6C15F7CD0 for ; Fri, 24 Oct 2025 13:51:26 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 0CD6C15F7CD0 Received: by exim-smtp-855f5997bb-88mr2 with esmtpa (envelope-from ) id 1vCFOC-000000006vv-0e6Z; Fri, 24 Oct 2025 13:51:23 +0300 To: Sergey Bronnikov Date: Fri, 24 Oct 2025 13:50:25 +0300 Message-ID: <2a5ade826208e1646e13b9e5dfa5e3ae1545aa84.1761301736.git.skaplun@tarantool.org> 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: 4F1203BC0FB41BD9DAB542EDD08389FE9EC6AFBA88B3EEC055B1315680A74C45182A05F538085040A0F2DD9605EBA0E23DE06ABAFEAF67052823B9085C61F75052E7C6720268728EB5F121B80759E0D0 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE704FFE27C31EF363AEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566D857902A848E84F8CF9140A7A2B10D6B282EBDC4CF679BDE88BE467966E3E7C6389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C07734D68A6916D8318941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B66EA1BA7CA28B4A74CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE7BEE702378D8A34C7731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A5184C693F3D9E1CB95002B1117B3ED696A16B2CA8AA05343F5D145BB8EF0DE66B823CB91A9FED034534781492E4B8EEAD003C2D46C52F18F2C79554A2A72441328621D336A7BC284946AD531847A6065A535571D14F44ED41 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CFAB4E41F847803F7C4D508A4145181CF44F15E93DF0121182BB6B724D0DC0362345CF0F9AF1251E136EB503EC62A3E87F55EC0334EC23901BE2422C6CC32E61FEB504054C0C93742D5F4332CA8FE04980913E6812662D5F2A5EAB5682573093F7837F15F2B5E4A70B33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVRN2q9QiacRuZq6JDKz7MOs= X-DA7885C5: E1B1214383B0804EF255D290C0D534F9E4A7B379EF2FBD5553D934C2F210F3DCD38AA2869AA995385B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD2BCC004913C89738011988E4495A63B6EF91B883EADDEB69CE49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH v1 luajit 21/41] perf: adjust partialsums 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/partialsums.lua | 69 ++++++++++++++++++----------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/perf/LuaJIT-benches/partialsums.lua b/perf/LuaJIT-benches/partialsums.lua index 46bb9da3..ab24b30a 100644 --- a/perf/LuaJIT-benches/partialsums.lua +++ b/perf/LuaJIT-benches/partialsums.lua @@ -1,29 +1,44 @@ +local bench = require("bench").new(arg) -local n = tonumber(arg[1]) -local function pr(fmt, x) io.write(string.format(fmt, x)) end +local DEFAULT_N = 1e7 +local n = tonumber(arg[1]) or DEFAULT_N -local a1, a2, a3, a4, a5, a6, a7, a8, a9, alt = 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 -local sqrt, sin, cos = math.sqrt, math.sin, math.cos -for k=1,n do - local k2, sk, ck = k*k, sin(k), cos(k) - local k3 = k2*k - a1 = a1 + (2/3)^k - a2 = a2 + 1/sqrt(k) - a3 = a3 + 1/(k2+k) - a4 = a4 + 1/(k3*sk*sk) - a5 = a5 + 1/(k3*ck*ck) - a6 = a6 + 1/k - a7 = a7 + 1/k2 - a8 = a8 + alt/k - a9 = a9 + alt/(k+k-1) - alt = -alt -end -pr("%.9f\t(2/3)^k\n", a1) -pr("%.9f\tk^-0.5\n", a2) -pr("%.9f\t1/k(k+1)\n", a3) -pr("%.9f\tFlint Hills\n", a4) -pr("%.9f\tCookson Hills\n", a5) -pr("%.9f\tHarmonic\n", a6) -pr("%.9f\tRiemann Zeta\n", a7) -pr("%.9f\tAlternating Harmonic\n", a8) -pr("%.9f\tGregory\n", a9) +bench:add({ + name = "partialsums", + payload = function() + local a1, a2, a3, a4, a5, a6, a7, a8, a9, alt = 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 + local sqrt, sin, cos = math.sqrt, math.sin, math.cos + for k=1,n do + local k2, sk, ck = k*k, sin(k), cos(k) + local k3 = k2*k + a1 = a1 + (2/3)^k + a2 = a2 + 1/sqrt(k) + a3 = a3 + 1/(k2+k) + a4 = a4 + 1/(k3*sk*sk) + a5 = a5 + 1/(k3*ck*ck) + a6 = a6 + 1/k + a7 = a7 + 1/k2 + a8 = a8 + alt/k + a9 = a9 + alt/(k+k-1) + alt = -alt + end + return {a1, a2, a3, a4, a5, a6, a7, a8, a9} + end, + checker = function(a) + if n == DEFAULT_N then + assert(a[1] == 2.99999999999999866773) + assert(a[2] == 6323.09512394020111969439) + assert(a[3] == 0.99999989999981531152) + assert(a[4] == 30.31454593111029183206) + assert(a[5] == 42.99523427973661426904) + assert(a[6] == 16.69531136585727182364) + assert(a[7] == 1.64493396684725956547) + assert(a[8] == 0.69314713056010635039) + assert(a[9] == 0.78539813839744787582) + end + return true + end, + items = n, +}) + +bench:run_and_report() -- 2.51.0