check.lua文件如下
package.path = package.path..';/usr/local/lualib/lua/?.lua';
local token_checker =require "tokencheck.lua"
token_checker.check()
你的意思是有以下两个耗时点:
1. package.path = package.path..';/usr/local/lualib/lua/?.lua'; --这个语句每次在请求进来都会字符串拼接一下,耗时A
2. token_checker.check() ; -- 这里语句调用中可能用到的全局变量查找,耗时B
A+B联合起来导致了将近10倍速的性能差,但是
如果使用lua_package_path "/usr/local/lualib/lua/?.lua;;";
则check.lua文件变为
local token_checker =require "tokencheck.lua"
token_checker.check()
二者只差一句,是不是可以认为只是有字符串拼接导致的呢?字符串拼接也不至于带来10倍差距吧?
在 2018年1月29日星期一 UTC+8下午2:23:31,tokers写道: