memcached应​​该花这么久吗?

时间:2013-06-20 11:56:00

标签: php memcached

我比较了这两段代码:

测试1:

$time = microtime(true);

$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

for($i=1;$i<=1000;$i++){
   $result = $memcached->get('test');
}

echo (microtime(true) - $time)*1000;

结果时间:50.509929656982

<小时/> 测试2:

$time = microtime(true);

$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

for($i=1;$i<=1000;$i++){
   $result = 'just me';
}

echo (microtime(true) - $time)*1000;

结果时间:0.3209114074707

memcached应​​该花这么长时间吗?

2 个答案:

答案 0 :(得分:2)

你在那里做了很多令人困惑的数学。我认为你的问题根本不清楚。

在将原始答案乘以1,000之后,您似乎得到了50.509929656982ms。所以我要把它再增加到你原来的答案~50,510μs。现在,这是1,000个请求,所以平均请求返回~50μs。

现在,如果您真的想要抓取1,000个项目,那么您可以在一个多项目请求中使用它,这将大大减少每个项目的平均时间。

如果您正在询问是否有时间形成并传输网络请求并获得网络响应,解析它并返回它的速度应该比紧密循环中的NOOP分配慢,是的。是的。

如果你问50μs是快还是慢......那真的取决于你。

答案 1 :(得分:0)

在典型的memcached设置中,我预计几乎每个操作都会在1ms或更短的时间内完成。我建议检查一下你的网络延迟是什么,然后分析客户端,看看客户花了多少时间实际处理操作。如果你可以排除那些缓慢的问题,那么你可能会遇到某种服务器问题。