程序执行时间

来源:互联网 发布:网络调试助手的作用 编辑:程序博客网 时间:2024/06/05 00:07
 lua睡眠和计算代码执行时间 2016-09-06 17:56:42分类: 嵌入式先看一下这段代码执行:function sleep(n)    local socket = require("socket")    socket.select(nil, nil, n)endlocal socket = require("socket")local o_start = os.clock()local g_start = socket.gettime()sleep(0.005)local o_end = os.clock()local g_end = socket.gettime()local o_diff = o_end - o_startlocal g_diff = g_end - g_startprint("o_start: "..o_start)print("g_start: "..g_start)print("o_end: "..o_end)print("g_end: "..g_end)print("o_diff: "..o_diff)print("g_diff: "..g_diff)结果:o_start: 0g_start: 1473155233.693o_end: 0g_end: 1473155233.6982o_diff: 0g_diff: 0.00513911247253421.sleep这个函数使用的是socke套接字,很明显这里相当于睡眠0.005秒。实践后发现,在openwrt上只能精确到毫秒,但这比使用os.execute("sleep 1")好多了。因为在openwrt上sleep只支持秒,不支持sleep 0.1之类的毫秒级别,测试centos确是支持的。2.两个可以用来计算时间差的函数os.clock()和socket.gettime()。他们的不同之处在于os.clock()计算的是cpu在该程序中执行的时间,即进程睡眠的时间不会计算在os.clock()中。而socket.gettime()应该是获取的utc时间,它任何时间都在计数。因此要测试整个程序运行结束的时间,包括睡眠的时间的话使用socket.gettime()计算,反之使用os.clock()计算。

0 0
原创粉丝点击