【发布时间】:2019-11-21 13:20:27
【问题描述】:
我认为 Lua os.clock() 以秒为单位返回时间。但是从https://www.lua.org/pil/22.1.html这里的文档来看,他们有这个例子
local x = os.clock()
local s = 0
for i=1,100000 do s = s + i end
print(string.format("elapsed time: %.2f\n", os.clock() - x))
将结果四舍五入到小数点后 2 位。 os.clock() 是否返回 second.ms?
在 Lua 中运行它也会给出
> print(os.clock())
0.024615
这些小数位是多少?
【问题讨论】:
-
是程序运行的秒数,但不四舍五入到最接近的秒数。它具有毫秒精度
-
@avariant 那么为什么stackoverflow.com/questions/463101/… 上的所有这些帖子都说 Lua 没有毫秒精度,而您需要用 C 或其他方式实现它?似乎
os.clock()被原生支持并具有 ms 分辨率 -
os.time 和 os.clock 提供不同的功能。 os.time 返回当前时间,并且只有秒精度。 os.clock 返回自您启动(我假设)lua 解释器以来经过的时间。因此,如果您正在对某种延迟进行基准测试或编码,您可以使用 os.clock 来跟踪经过的时间毫秒精度,但它不会为您提供一天中的时间
标签: lua