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 AC0F116F8481; Sat, 3 Jan 2026 09:28:13 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org AC0F116F8481 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1767421693; bh=lraHFLY5ArNBb0XvzhhGu7wLqnqiuY4jAxKT4R8xBp8=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=QVC0tasmbdle3Jkyh8O8vZxvyDSkMCjWrGo0g+xhvJ9esMq7ZahNGL4DM7xzVbXqs cGmK57a1kKvZz+GJDOiBs+nyegEOXXuusbe7729KeF8HxuG7P+l30yhj9qZpFFyXS7 4DqwqpTjz0AwLLIOP4noLXAJyiPPvecQwi3fiRV8= Received: from send277.i.mail.ru (send277.i.mail.ru [95.163.59.116]) (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 0218716F8480 for ; Sat, 3 Jan 2026 09:28:12 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 0218716F8480 Received: by exim-smtp-7b4fb89df9-mjhcl with esmtpa (envelope-from ) id 1vbv7S-000000009K6-3D5Z; Sat, 03 Jan 2026 09:28:11 +0300 Date: Sat, 3 Jan 2026 09:28:13 +0300 To: Sergey Bronnikov Cc: tarantool-patches@dev.tarantool.org Message-ID: References: <6fb711e7-fd3d-4749-a581-e31de35621ac@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <6fb711e7-fd3d-4749-a581-e31de35621ac@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 78E4E2B564C1792B X-77F55803: 4F1203BC0FB41BD979975AF0D777FEBD136B1DE29D0A14186819F7335A1BEA2E182A05F5380850401019676A45705D003DE06ABAFEAF67052E154FB335BF85C76F86D3B42967E25D21E68012AEC8BD2D X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7B9FBA884A7C9B8BAEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566D1B0EEF93386A5FDC3DE29EB5E7766624987DB4E2466C3B6C6524AF6FCF13BEF389733CBF5DBD5E913377AFFFEAFD269A417C69337E82CC2CC7F00164DA146DAFE8445B8C89999729449624AB7ADAF37F6B57BC7E64490611E7FA7ABCAF51C92176DF2183F8FC7C0D9442B0B5983000E8941B15DA834481F9449624AB7ADAF372E808ACE2090B5E14AD6D5ED66289B5259CC434672EE63711DD303D21008E298D5E8D9A59859A8B6B372FE9A2E580EFC725E5C173C3A84C309A7649CC036878F35872C767BF85DA2F004C90652538430E4A6367B16DE6309 X-C1DE0DAB: 0D63561A33F958A5F37E66D88E74BBD35002B1117B3ED696681E74B9665540815D145BB8EF0DE66B823CB91A9FED034534781492E4B8EEAD4ECBDE8281F904F9BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191716CD42B3DD1D34CAB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D6593747122F75A3E808084CABFAC95B157D3E531D7CEDED9D97BA6295C87AE01EB1D3861766CCEB4727B8341EE9D5BE9A0A5869AC487CD4934D7B74A3B91CE696A3552EAF53262B806C8CD93680B12512CF4C41F94D744909CECFA6C6B0C050A61A8CAF69B82BA93681CD72808BE417F3B9E0E7457915DAA85F X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVTZJppT4ZVHRgeyFH79E/no= X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD20970CA8013D27E6C027E4D9EA795B79D22EA1849785F98FDE49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v2 luajit 26/41] perf: adjust revcomp 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 Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi, Sergey! Fixed your comment. On 02.01.26, Sergey Bronnikov wrote: > Hi, Sergey! > > thanks for the patch! LGTM > > Sergey > > On 12/26/25 12:17, Sergey Kaplun wrote: > > + payload = function() > > + local wcode = [=[ > > + return function(t, n) > > + if n == 1 then return end > > + local iubc, sub, write = iubc, string.sub, io.write > > + local s = table.concat(t, "", 1, n - 1) > > + for i = #s - 59, 1, -60 do > > + write(]=] > > + for i = 59, 3, -4 do > > + wcode = wcode.."iubc[sub(s, i + "..(i - 3)..", i + "..i..")], " > > + end > > + wcode = wcode..[=["\n") > > + end > > + local r = #s % 60 > > + if r ~= 0 then > > + for i = r, 1, -4 do write(iubc[sub(s, i - 3 < 1 and 1 or i - 3, i)]) end > > + write("\n") > > + end > > + end > > + ]=] > > could you also apply the patch below with formatting? > > diff --git a/perf/LuaJIT-benches/revcomp.lua > b/perf/LuaJIT-benches/revcomp.lua > index 6e8a7049..9050110e 100644 > --- a/perf/LuaJIT-benches/revcomp.lua > +++ b/perf/LuaJIT-benches/revcomp.lua > @@ -38,9 +38,9 @@ bench:add({ >        for i = #s - 59, 1, -60 do >          write(]=] >      for i = 59, 3, -4 do > -      wcode = wcode.."iubc[sub(s, i + "..(i - 3)..", i + "..i..")], " > +      wcode = wcode .. "iubc[sub(s, i + " .. (i - 3) .. ", i + " .. i > .. ")], " >      end > -    wcode = wcode..[=["\n") > +    wcode = wcode .. [=["\n") >        end >        local r = #s % 60 >        if r ~= 0 then > @@ -54,7 +54,10 @@ bench:add({ >      local t, n = {}, 1 >      for line in io.lines() do >        local c = sub(line, 1, 1) > -      if c == ">" then writerev(t, n); io.write(line, "\n"); n = 1 > +      if c == ">" then > +        writerev(t, n); > +        io.write(line, "\n"); > +        n = 1 >        elseif c ~= ";" then t[n] = line; n = n + 1 end >      end >      writerev(t, n) Reformatted as you suggested: =================================================================== diff --git a/perf/LuaJIT-benches/revcomp.lua b/perf/LuaJIT-benches/revcomp.lua index 6e8a7049..1746334b 100644 --- a/perf/LuaJIT-benches/revcomp.lua +++ b/perf/LuaJIT-benches/revcomp.lua @@ -18,7 +18,7 @@ iubc = setmetatable({ t="A", g="C", v="B", h="D", m="K", y="R", u="A", N="N", S="S", W="W", n="N", s="S", w="W", }, { __index = function(t, s) - local r = t[sub(s, 2)]..t[sub(s, 1, 1)]; t[s] = r; return r end }) + local r = t[sub(s, 2)] .. t[sub(s, 1, 1)]; t[s] = r; return r end }) local stdout = io.output() @@ -38,9 +38,9 @@ bench:add({ for i = #s - 59, 1, -60 do write(]=] for i = 59, 3, -4 do - wcode = wcode.."iubc[sub(s, i + "..(i - 3)..", i + "..i..")], " + wcode = wcode .. "iubc[sub(s, i + " .. (i - 3) .. ", i + " .. i .. ")], " end - wcode = wcode..[=["\n") + wcode = wcode .. [=["\n") end local r = #s % 60 if r ~= 0 then @@ -54,7 +54,10 @@ bench:add({ local t, n = {}, 1 for line in io.lines() do local c = sub(line, 1, 1) - if c == ">" then writerev(t, n); io.write(line, "\n"); n = 1 + if c == ">" then + writerev(t, n) + io.write(line, "\n") + n = 1 elseif c ~= ";" then t[n] = line; n = n + 1 end end writerev(t, n) =================================================================== > > > > + local writerev = loadstring(wcode)() > > + > > + local t, n = {}, 1 > > + for line in io.lines() do > > + local c = sub(line, 1, 1) > > + if c == ">" then writerev(t, n); io.write(line, "\n"); n = 1 > > + elseif c ~= ";" then t[n] = line; n = n + 1 end > > + end > > + writerev(t, n) > > + -- Repeat operation several times. > > +io.stdin:seek("set", 0) > > + end, > > + teardown = function() > > + io.output(stdout) > > + end, > > + -- Amount of symbols in the input file. > > + items = 5e6, > > +}) > > > > -local t, n = {}, 1 > > -for line in io.lines() do > > - local c = sub(line, 1, 1) > > - if c == ">" then writerev(t, n); io.write(line, "\n"); n = 1 > > - elseif c ~= ";" then t[n] = line; n = n + 1 end > > -end > > -writerev(t, n) > > +bench:run_and_report() -- Best regards, Sergey Kaplun