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 AABC915F7CED; Fri, 24 Oct 2025 13:54:15 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org AABC915F7CED DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1761303255; bh=q3bYUCfzXNZ3klrmcYZIXKYes7Qxu57qOXS1HMN32xM=; 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=hEYC7KzhmxLEiQ9/cs2+BYSM6KfFFkt7WdBc+bLiLckG6b1TkMFekeaYIbqOV7EXL Xi9kL+vd9z9MwpL7xhJo0OYB2ST6BLZhiW+I/b8ghyqmM2tFbnQGW2ei0hZ9EY95wG rLLYDrmHqH8Jl3F7BOjeLbPzyOu2K4bycRdOVDQo= Received: from send60.i.mail.ru (send60.i.mail.ru [89.221.237.155]) (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 1ED9015B1F7D for ; Fri, 24 Oct 2025 13:50:53 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 1ED9015B1F7D Received: by exim-smtp-855f5997bb-88mr2 with esmtpa (envelope-from ) id 1vCFNk-000000006vv-0EuP; Fri, 24 Oct 2025 13:50:52 +0300 To: Sergey Bronnikov Date: Fri, 24 Oct 2025 13:50:11 +0300 Message-ID: <7b761c35d6f2126d36a1d6057fb59b1020b53b99.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: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9DAB542EDD08389FE1DE696341C5B9DBB9718E42DA8F85DEB182A05F5380850408BAA768D6123F18E3DE06ABAFEAF670557CDD1A34C5CE31A52E7C6720268728E2B0BC4687570E331 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7E9A0F80F179600C6EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566D857902A848E84F8020F1C0E751139E3282EBDC4CF679BDE284C0C2EB6142CD9389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C05A64D9A1E9CA65708941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B625DC386152A6764ACC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE74815913FF2B4FA25731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A544777EFD695B18835002B1117B3ED696B9CB063ACD42E05922DFD5397F446790823CB91A9FED034534781492E4B8EEAD69BF13FED57427F1C79554A2A72441328621D336A7BC284946AD531847A6065A535571D14F44ED41 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CF7555D8A1878A4D855DE9BFA2BE8565CF2E10190AE607939C31BCCE574E0D72140E472C501BDE4CA36EB503EC62A3E87FB331A4B4A4F1057CE2422C6CC32E61FEDECC28C89B0506D15F4332CA8FE04980913E6812662D5F2A5EAB5682573093F7837F15F2B5E4A70B33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVRN2q9QiacRuEkZCg6gdpVg= X-DA7885C5: 40CF4384290C3E6AF255D290C0D534F9523FE2FF9544023AD196C7FFDA6EA221CA7FE8051EF891775B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD2EDF4B8D0F7EB4DA911988E4495A63B6ED4C7CA82850927E9E49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH v1 luajit 07/41] perf: adjust coroutine-ring 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/coroutine-ring.lua | 45 ++++++++++++++++---------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/perf/LuaJIT-benches/coroutine-ring.lua b/perf/LuaJIT-benches/coroutine-ring.lua index 1e8c5ef6..1b86a5ba 100644 --- a/perf/LuaJIT-benches/coroutine-ring.lua +++ b/perf/LuaJIT-benches/coroutine-ring.lua @@ -1,3 +1,5 @@ +local bench = require("bench").new(arg) + -- The Computer Language Benchmarks Game -- http://shootout.alioth.debian.org/ -- contributed by Sam Roberts @@ -7,7 +9,6 @@ local n = tonumber(arg and arg[1]) or 2e7 -- fixed size pool local poolsize = 503 -local threads = {} -- cache these to avoid global environment lookups local create = coroutine.create @@ -15,7 +16,6 @@ local resume = coroutine.resume local yield = coroutine.yield local id = 1 -local token = 0 local ok local body = function(token) @@ -24,19 +24,30 @@ local body = function(token) end end --- create all threads -for id = 1, poolsize do - threads[id] = create(body) -end - --- send the token -repeat - if id == poolsize then - id = 1 - else - id = id + 1 - end - ok, token = resume(threads[id], token) -until token == n +bench:add({ + name = "coroutine_ring", + payload = function() + local token = 0 + -- create all threads + local threads = {} + for id = 1, poolsize do + threads[id] = create(body) + end + + -- send the token + repeat + if id == poolsize then + id = 1 + else + id = id + 1 + end + ok, token = resume(threads[id], token) + until token == n + return id + end, + checker = function(id) return id == (n % poolsize + 1) end, + items = n, +}) + +bench:run_and_report() -io.write(id, "\n") -- 2.51.0