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 7643115FB91B; Fri, 24 Oct 2025 14:02:16 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 7643115FB91B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1761303736; bh=Ik1eg8iaugi0Fyc7lUzbt229vx7TIwN/ci4ccpLr5bE=; 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=thdr9LeUZnVoMtdo9+yaaRG/gIg7Zm/D4ZBf884y9e22DEDK/kpfcOIej90y1nOi1 ASX+U9JQvP1dTzUhs3xTpxluQrMWiPL33DJOctIBXJ7JaFMRtSg+mWkSlD2QrxAZtx ME/vrGiV0nsksR07DMcs6/OBsrHEBFcdS0oupoWk= Received: from send172.i.mail.ru (send172.i.mail.ru [95.163.59.11]) (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 7FBCF15F7CD1 for ; Fri, 24 Oct 2025 13:51:32 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 7FBCF15F7CD1 Received: by exim-smtp-855f5997bb-88mr2 with esmtpa (envelope-from ) id 1vCFON-000000006vv-2YC1; Fri, 24 Oct 2025 13:51:31 +0300 To: Sergey Bronnikov Date: Fri, 24 Oct 2025 13:50:27 +0300 Message-ID: <8f29317ee2bd8403e728fb44331293e28693bbfa.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: 4F1203BC0FB41BD9DAB542EDD08389FE833E591919D8B10BEBBEC9A01E36940B182A05F538085040FF51262FF45EC8663DE06ABAFEAF670540221680CEA377F452E7C6720268728E1A8E179240D18B7E X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7B264C8851FD8E810EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566D857902A848E84F87FFE97F96ABDD108282EBDC4CF679BDECCA639C8C2EBD4B5389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C04CF195F1528592878941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6E5E764EB5D94DBD4CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE7BEE702378D8A34C7731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A5248A268FF8B4E2B75002B1117B3ED696F973024DD2489937F09842853758E9E5823CB91A9FED034534781492E4B8EEAD85CCBA673D36D1A4C79554A2A72441328621D336A7BC284946AD531847A6065A535571D14F44ED41 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CF371B7E13CB43CFB0EA970FD9F41439AB322CFBAF3FECB8ED01FEE54374285F5C90383D67CF2F9DA86EB503EC62A3E87F749A2A5D952CCD92E2422C6CC32E61FEFCDEBEB44DFCF6445F4332CA8FE04980913E6812662D5F2A5EAB5682573093F7837F15F2B5E4A70B33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVRN2q9QiacRusFLJsSUF8cI= X-DA7885C5: 3A8D130184FF5B3AF255D290C0D534F9D89321D3D2C8D228B1AB10A42F8A7EB2D1FD96D3B70FE5815B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD21CCA812ABFF016F811988E4495A63B6E5025A27A22D7D7AFE49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH v1 luajit 23/41] perf: adjust ray 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. The output is redirected to /dev/null. The check is skipped since it is very inconvenient to check the binary output, especially since it may be configured by the parameter. --- perf/LuaJIT-benches/ray.lua | 76 ++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 26 deletions(-) diff --git a/perf/LuaJIT-benches/ray.lua b/perf/LuaJIT-benches/ray.lua index 2acc24c0..f7b76d0a 100644 --- a/perf/LuaJIT-benches/ray.lua +++ b/perf/LuaJIT-benches/ray.lua @@ -1,10 +1,8 @@ +local bench = require("bench").new(arg) + local sqrt = math.sqrt local huge = math.huge - -local delta = 1 -while delta * delta + 1 ~= 1 do - delta = delta * 0.5 -end +local delta local function length(x, y, z) return sqrt(x*x + y*y + z*z) end local function vlen(v) return length(v[1], v[2], v[3]) end @@ -110,26 +108,52 @@ end local level, n, ss = tonumber(arg[1]) or 9, tonumber(arg[2]) or 256, 4 -local iss = 1/ss -local gf = 255/(ss*ss) - -io.write(("P5\n%d %d\n255\n"):format(n, n)) -local light = { unitise(-1, -3, 2) } -ilight = { -light[1], -light[2], -light[3] } -local camera = { 0, 0, -4 } -local dir = { 0, 0, 0 } - -local scene = create(level, {0, -1, 0}, 1) - -for y = n/2-1, -n/2, -1 do - for x = -n/2, n/2-1 do - local g = 0 - for d = y, y+.99, iss do - for e = x, x+.99, iss do - dir[1], dir[2], dir[3] = unitise(e, d, n) - g = g + ray_trace(light, camera, dir, scene) + +local stdout = io.output() + +bench:add({ + name = "ray", + -- Avoid skip checking here, since it is not very convenient. + -- If you want to check the behaviour -- drop the setup + -- function. + skip_check = true, + setup = function() + io.output("/dev/null") + end, + payload = function() + local iss = 1/ss + local gf = 255/(ss*ss) + + delta = 1 + while delta * delta + 1 ~= 1 do + delta = delta * 0.5 + end + + io.write(("P5\n%d %d\n255\n"):format(n, n)) + local light = { unitise(-1, -3, 2) } + ilight = { -light[1], -light[2], -light[3] } + local camera = { 0, 0, -4 } + local dir = { 0, 0, 0 } + + local scene = create(level, {0, -1, 0}, 1) + + for y = n/2-1, -n/2, -1 do + for x = -n/2, n/2-1 do + local g = 0 + for d = y, y+.99, iss do + for e = x, x+.99, iss do + dir[1], dir[2], dir[3] = unitise(e, d, n) + g = g + ray_trace(light, camera, dir, scene) + end + end + io.write(string.char(math.floor(0.5 + g*gf))) end end - io.write(string.char(math.floor(0.5 + g*gf))) - end -end + end, + teardown = function() + io.output(stdout) + end, + items = n * n * level, +}) + +bench:run_and_report() -- 2.51.0