get slow
maczpc opened this issue · 3 comments
hi,经测试发现get数据非常慢,请问你有遇到过么?
发现都在上百毫米
2013/02/26 11:47:21 [notice] 23797#0: *574 [lua] memca.lua:44: memcached_get(): memcache_get_get: 0.145000
2013/02/26 11:47:21 [notice] 23795#0: *609 [lua] memca.lua:44: memcached_get(): memcache_get_get: 0.168000
2013/02/26 11:47:21 [notice] 23797#0: *255 [lua] memca.lua:44: memcached_get(): memcache_get_get: 0.145000
2013/02/26 11:47:21 [notice] 23795#0: *675 [lua] memca.lua:44: memcached_get(): memcache_get_get: 0.168000
2013/02/26 11:47:21 [notice] 23797#0: *173 [lua] memca.lua:44: memcached_get(): memcache_get_get: 0.149000
2013/02/26 11:47:21 [notice] 23800#0: *704 [lua] memca.lua:44: memcached_get(): memcache_get_get: 0.146000
2013/02/26 11:47:21 [notice] 23798#0: *14 [lua] memca.lua:44: memcached_get(): memcache_get_get: 0.163000
Hello!
On Mon, Feb 25, 2013 at 8:06 PM, pengcheng notifications@github.com wrote:
hi,经测试发现get数据非常慢,请问你有遇到过么?
发现都在上百毫米
你使用的计时器可能误差很大;请提供你的计时代码。
Best regards,
-agentzh
Hello!
2013/2/25 agentzh agentzh@gmail.com:
你使用的计时器可能误差很大;请提供你的计时代码。
下面是一个运行在我本地(Core i7 2.90GHz CPU + ngx_openresty 1.2.7.1 + LuaJIT 2.0.1)的示例:
local count = 1000
local start = ngx.now()
for i = 1, count do
local res, flags, err = memc:get("dog")
if err then
ngx.log(ngx.ERR, "failed to get dog: ", err)
return
end
if not res then
ngx.log(ngx.ERR, "dog not found")
return
end
-- ngx.say("dog: ", res)
end
ngx.update_time()
local elapsed = ngx.now() - start
ngx.say("get avg time: ", elapsed / count, " sec")
当 memcached 中存储的 dogs 这个键对应的数据量只有几字节时,得到的典型输出是
get avg time: 1.7200000286102e-05 sec
即 17.2 微秒。
当数据量为 1KB 时,计时结果为
get avg time: 1.8809998035431e-05 sec
即 18.8 微秒。
当数据量为 100KB 时,计时结果为
get avg time: 7.4199998378754e-05 sec
即 74.2 微秒。
当数据量为 900KB 之巨时,计时结果为
get avg time: 0.00042469999790192 sec
也不过 425 微秒(或 0.42 毫秒)。
我不清楚你的上百毫秒是如何计量出来的。
Best regards,
-agentzh
Hello!
On Mon, Feb 25, 2013 at 8:49 PM, agentzh agentzh@gmail.com wrote:
下面是一个运行在我本地(Core i7 2.90GHz CPU + ngx_openresty 1.2.7.1 + LuaJIT 2.0.1)的示例:
local count = 1000
实际测量时,为减少误差,我使用的 count 变量值为十万,即 100000,除了最后一次测试使用了一万,即 10000.
Best regards,
-agentzh