openresty lua获取微秒和毫秒

2023-06-07,,

time_helper.lua

local _M = {};
local ffi = require("ffi")
ffi.cdef[[
    struct timeval {
        long int tv_sec;
        long int tv_usec;
    };
    int gettimeofday(struct timeval *tv, void *tz);
]];
local tm = ffi.new("struct timeval");

-- 返回微秒级时间戳
function _M.current_time_millis()   
    ffi.C.gettimeofday(tm,nil);
    local sec =  tonumber(tm.tv_sec);
    local usec =  tonumber(tm.tv_usec);
    return sec + usec * 10^-6;
end

return _M;

test.lua

local time_helper = require "time_helper"

local a = time_helper.current_time_millis()
local b = time_helper.current_time_millis()

ngx.say((b-a)*1000)

《openresty lua获取微秒和毫秒.doc》

下载本文的Word格式文档,以方便收藏与打印。