帮助网站网站做优化,如何制作网络平台,wordpress评论框函数,哈尔滨做网站需要多少钱简介
在进行程序设计过程中#xff0c;经常需要对某些函数、某些程序片断从开始运行到运行结束所耗费的时间进行一些量化。这种量化实际上就是计算时间差。 获取函数耗时情景如下#xff1a;
function time_used() --开始计时-- do something at here. --结束计时--时间差经常需要对某些函数、某些程序片断从开始运行到运行结束所耗费的时间进行一些量化。这种量化实际上就是计算时间差。 获取函数耗时情景如下
function time_used() --开始计时-- do something at here. --结束计时--时间差开始计时与结束计时之间所耗费的时间return
end时间差计算
通常是以秒、毫秒、微妙、纳秒为单位进行时间差的计算。但是由于计算机时间系统的时钟并不是特别准确所以得出的时间差总体来说都是有误差的。 计算时间差有很多方法现列出其中3中
os.time方法 精度秒级不推荐适用os.clock方法 精度微秒级在我电脑上不工作不推荐使用跨平台可能也有问题socket.gettime方法 精度微妙级推荐 实际上在普通个人PC上微秒级别的时间差都是不准确的只能作为一个参考。毫秒级别的时间差基本上就够用了。
os.clock不好使的问题需要进一步查明原因。
试验
试验代码中通过调用 shell的sleep函数分别使程序睡眠1.51秒并分别用上述3种方法计算时间差。
local os require(os)
local socket require socketlocal s os.time()
os.execute(sleep 1.51)
local e os.time()
print(time span (os.time): , (e-s).. Second) local s os.clock()
os.execute(sleep 1.51)
local e os.clock()
print(time span (os.clock): , (e-s) * 1000)
print(os.clock return, s, e) local start_time socket.gettime()
os.execute(sleep 1.51)
local end_time socket.gettime()
local use_time (end_time - start_time )
print(time span (socket): ..use_time .. Second)
print(time span (socket): ..(use_time*1000) .. MilliSecond)
print(time span (socket): ..(use_time*1000000) .. MicroSecond)运行截图 通过运行截图可以发现 同样是睡眠1.51秒, os.time计算的时间差是2秒这是因为os.time返回时间的精度就是秒差值必然也是秒。这个差值适用于长时间运行的程序。
os.clock不工作。
socket.gettime计算的时间差是1529851微妙也就是1529毫秒1.52秒。