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 A975116BF2C6; Fri, 26 Dec 2025 12:28:24 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org A975116BF2C6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1766741304; bh=6U5lUBsA292kHnwOuRy+T9cvTuYgf5smCvoHDGA7fgw=; 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=NukE0QO/JAYGwG2TYZEn/q8l1y1/y6YGOoJELOTl2tSGZDPNgrPoYL+nxBsp5lu5/ zfK3VcXbSnD/xfDswYGE0DtxJ8kHVq4Ky9bf/Dq6aeZRnAO9LbJw9sV6CGUKzadMxz G9WIp/zbN6wi65xCdIK52dNSEKdsMRWJ0tankpKo= Received: from send82.i.mail.ru (send82.i.mail.ru [89.221.237.177]) (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 8760016C6595 for ; Fri, 26 Dec 2025 12:18:56 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 8760016C6595 Received: by exim-smtp-7b4fb89df9-lft7n with esmtpa (envelope-from ) id 1vZ3yJ-000000008Cp-1aTv; Fri, 26 Dec 2025 12:18:55 +0300 To: Sergey Bronnikov Date: Fri, 26 Dec 2025 12:17:51 +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: 4F1203BC0FB41BD979975AF0D777FEBD390EF5E93CD1F773F45ED97938852624182A05F53808504057782941B8E91B523DE06ABAFEAF6705D51AB5D73E8BEB2CB4FA2C6BBBE99EF970ABB576495EA039 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE701173C01F417A2A6EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566657B88B02DF8C86985196E5CCABC9AC18EDCD39A7D089D1A59F3467021B06F57389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C0B27420F9988F54058941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6A70DDFFB3186CBC5CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE778B471BB9634AD8A731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A50B5C809542811E3B5002B1117B3ED69647722AC2AF77356ECA7E60A991436CA2823CB91A9FED034534781492E4B8EEAD619183A7BD6BC6F1F36E2E0160E5C55395B8A2A0B6518DF68C46860778A80D548E8926FB43031F38 X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191716CD42B3DD1D34CAB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D65939A25F885741D0417B2A5D32E17BF4C733D2E7E95A02578BE1E3A29B3B96B366859EDE8E8EF90734B8341EE9D5BE9A0A3EF62C1F3AC5E5A105D8439B09F6DFF0130E3873B540C6FE6536EB022892E5344C41F94D744909CECFA6C6B0C050A61A8CAF69B82BA93681CD72808BE417F3B9E0E7457915DAA85F X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVdtTL5f5BIXb1keuvn3ILVo= X-DA7885C5: B4408C01A84FFB2AF255D290C0D534F98503E8FA7FD3F0A83617AD7AAADC42FB0A35F85ED8CCD7725B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD2B80A2C7B1765B3468700636FE984EBB88BAF3E2AC8AC08AEE49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH v2 luajit 20/41] perf: adjust nsieve 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/nsieve.lua | 42 ++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/perf/LuaJIT-benches/nsieve.lua b/perf/LuaJIT-benches/nsieve.lua index 6de0524f..dd59c71c 100644 --- a/perf/LuaJIT-benches/nsieve.lua +++ b/perf/LuaJIT-benches/nsieve.lua @@ -1,3 +1,11 @@ +-- Benchmark to check the performance of access to the array +-- structure in the tiny inner loops. This benchmark finds all the +-- prime numbers in a given segment. This is the most +-- straightforward implementation. +-- For the details see: +-- https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes + +local bench = require("bench").new(arg) local function nsieve(p, m) for i=2,m do p[i] = true end @@ -11,11 +19,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", + 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() -- 2.52.0