mirror of https://github.com/midoks/mdserver-web
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.1 KiB
62 lines
1.1 KiB
local function target()
|
|
ngx.re.find("hello, world.", [[\w+\.]], "jo")
|
|
end
|
|
for i = 1, 100 do
|
|
target()
|
|
end
|
|
|
|
-- 以上为预热操作
|
|
collectgarbage()
|
|
|
|
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");
|
|
|
|
-- 返回微秒级时间戳
|
|
local function 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
|
|
|
|
|
|
ngx.update_time()
|
|
local begin = ngx.now()
|
|
local N = 1e7
|
|
for i = 1, N do
|
|
target()
|
|
end
|
|
ngx.update_time()
|
|
|
|
ngx.say("elapsed: ", (ngx.now() - begin) / N)
|
|
|
|
|
|
ngx.update_time()
|
|
local begin = ngx.now()
|
|
local N = 1e7
|
|
for i = 1, N do
|
|
target()
|
|
end
|
|
ngx.update_time()
|
|
|
|
ngx.say("elapsed[1]: ", (ngx.now() - begin) / N)
|
|
|
|
|
|
|
|
|
|
ngx.update_time()
|
|
local begin = current_time_millis()
|
|
local N = 1e7
|
|
for i = 1, N do
|
|
target()
|
|
end
|
|
ngx.update_time()
|
|
|
|
ngx.say("ffi elapsed: ", (current_time_millis() - begin) / N) |