mirror of https://github.com/midoks/mdserver-web
pull/216/head
parent
6e6a41e6df
commit
7bdcd0ac2b
@ -0,0 +1,62 @@ |
|||||||
|
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) |
Loading…
Reference in new issue