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 3D4E616BF2D0; Fri, 26 Dec 2025 12:28:54 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 3D4E616BF2D0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1766741334; bh=OjUWfgSh73bR57sNmQGKEcuz3M1qat7p5Ww7qT5QMnM=; 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=t944eEHYih9gqXmpr73iUwOd8XKhnkOrRGAymdRuBMpu6rNTM6QuW5zxxy4+LD/3i fGmzhEVvDSeFb1cuSohyGbbbC5Q/uS+Rw7m4iJ5wFpM5nDlMxDGfU/TMWsg2dsvhbt VV3a2GGR0NtLfW6nKXYv8N4Bwp+I7pdXUKw4kh+c= Received: from send266.i.mail.ru (send266.i.mail.ru [95.163.59.105]) (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 88B1816C6597 for ; Fri, 26 Dec 2025 12:18:59 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 88B1816C6597 Received: by exim-smtp-7b4fb89df9-lft7n with esmtpa (envelope-from ) id 1vZ3yM-000000008Cp-1r09; Fri, 26 Dec 2025 12:18:58 +0300 To: Sergey Bronnikov Date: Fri, 26 Dec 2025 12:17:52 +0300 Message-ID: X-Mailer: git-send-email 2.52.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD979975AF0D777FEBD826642AD4A534357A371A8F1BADBE128182A05F538085040BE22D6CB8D40084E3DE06ABAFEAF6705557D4005D203F09AB4FA2C6BBBE99EF929FF1465CC0F6BAA X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7AB524098FB2F2222EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566657B88B02DF8C8698AB7625C96BBEB0F8EDCD39A7D089D1A912983F9E2EFB5C6389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C05A64D9A1E9CA65708941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6BAA8CD687FCDB2EBCC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE778B471BB9634AD8A731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A5D515A675987D65395002B1117B3ED6966B18CDA7C4148289559C6C5561145D6F823CB91A9FED034534781492E4B8EEAD003C2D46C52F18F2C79554A2A72441328621D336A7BC284946AD531847A6065A535571D14F44ED41 X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191716CD42B3DD1D34CAB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D659736F04D026037F66B4E8E43D5A431247DBA2DFAA6ACD7C5CE73360AE673756FB42225FFF71F79E77B8341EE9D5BE9A0A541023CCC27CC93905D8439B09F6DFF03BC7051B5AECE9B96536EB022892E5344C41F94D744909CECFA6C6B0C050A61A8CAF69B82BA93681CD72808BE417F3B9E0E7457915DAA85F X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVdtTL5f5BIXbPOfHKAOTAmw= X-DA7885C5: CBE659C881FAED8DF255D290C0D534F9947AC3F39F767870519524B3A3442FBA5427BE47685981F45B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD29C3CDB5804F115688700636FE984EBB8E3C1065562BF1EEBE49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH v2 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 | 73 ++++++++++++++++++----------- 1 file changed, 46 insertions(+), 27 deletions(-) diff --git a/perf/LuaJIT-benches/partialsums.lua b/perf/LuaJIT-benches/partialsums.lua index 46bb9da3..2e5967d2 100644 --- a/perf/LuaJIT-benches/partialsums.lua +++ b/perf/LuaJIT-benches/partialsums.lua @@ -1,29 +1,48 @@ +-- The benchmark to check the performance of FP arithmetic and +-- math functions. Calculates the partial sums of several series +-- in the single loop. -local n = tonumber(arg[1]) -local function pr(fmt, x) io.write(string.format(fmt, x)) end +local bench = require("bench").new(arg) -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) +local DEFAULT_N = 1e7 +local n = tonumber(arg[1]) or DEFAULT_N + +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.52.0