gpt4 book ai didi

performance - Lua字符串转数解析速度优化

转载 作者:行者123 更新时间:2023-12-03 17:23:22 27 4
gpt4 key购买 nike

我正在尝试使用 Lua 作为其中一种语言进行速度测试,我只是想要一些关于如何在可能的情况下使我的代码更快一点的建议。我自己进行速度测试很重要,因为我正在查看非常具体的参数。

代码从一个看起来像这样的文件中读取,但数字是随机生成的,范围从 1 zu 1 000 000。在一个列表中有 100 到 10 000 个数字:

type
(123,124,364,5867,...)

type
(14224,234646,5686,...)

...
type用于另一种语言,因此可以忽略它。我只是把它放在这里,所以你知道为什么我没有解析每一行。这是我的 Lua 代码:
incr = 1
for line in io.lines(arg[1]) do
incr = incr +1
if incr % 3 == 0 then
line:gsub('([%d]+),?',function(n)tonumber(n)end)
end
end

现在,代码可以正常工作,并且完全符合我的要求。这不是让它工作,这只是关于速度。我需要想法和建议来使代码以最佳速度运行。

提前感谢您的任何答案。

最佳答案

恕我直言,这个 tonumber()基准测试是相当奇怪的。大部分 CPU 时间将用于其他任务(正则表达式解析、文件读取等)。

不是转换为数字并忽略结果,而是计算输入文件中所有数字的总和更合乎逻辑:

local gmatch, s = string.gmatch, 0

for line in io.lines(arg[1]) do
for n in gmatch(line, '%d+') do
s = s + n -- converting string to number is automatic here
end
end

print(s)

关于performance - Lua字符串转数解析速度优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978245/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com