lua中统计毫秒精度的时间

Debug posted @ 2013年4月07日 11:44 in 未分类 with tags Lua , 27339 阅读

lua自带的时间函数只能到秒的精度。

为了统计到毫秒精度的时间,可以使用luasocket。下载地址http://files.luaforge.net/releases/luasocket/luasocket

编译安装的时候,你可能需要在源码包根目录下的config文件中指定LUAINC变量为你的lua路径。

local socket = require "socket"
local t0 = socket.gettime()
-- do something
local t1 = socket.gettime()
print("used time: "..t1-t0.."ms")

 

update:

如果对精度的要求不需要到毫秒级别,可以用自带的os模块.精度为0.01秒

local s = os.clock()
local e = os.clock()
print("used time"..e-s.." seconds")
sakishum 说:
2013年7月05日 16:26

Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> for i = 1, 10 do print(os.clock()*10^6) end
6581
6604
6614
6623
6631
6640
6648
6656
6664
6669
5.2 里面貌似支持微妙了。

Avatar_small
Debug 说:
2013年8月21日 09:53

@sakishum: 谢谢,我去试试。不过我的生产环境中还是5.1.

sakishum 说:
2013年8月22日 23:04

我也在用5.1.4, 我直接用C/C++把 gettimeofday 开放给了 Lua做时间种子
int64_t timeGetTime(void) {
struct timeval now;
gettimeofday(&now, NULL);
// 秒 微秒
return now.tv_sec*1000 + now.tv_usec/1000;
}

Hot Shapers Belt in 说:
2019年3月11日 03:48

You completely match our expectation and the variety of our information.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter