-1

これら 2 つのコードを比較しました。

テスト 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 はこれほど時間がかかるはずですか?

4

2 に答える 2

2

あなたはそこでかなり複雑な計算をしました。あなたの質問はまったく明確ではないと思います。

元の答えに 1,000 を掛けた後、50.509929656982ms を得たようです。だから私はそれをあなたの元の答えである〜50,510μsに掛けます。これは 1,000 リクエストの場合で、平均リクエストは約 50µs で返されました。

実際に 1,000 個のアイテムを取得したい場合は、単一の multiget リクエストで取得できます。これにより、アイテムあたりの平均時間が大幅に短縮されます。

ネットワーク リクエストを作成して送信し、ネットワーク レスポンスを取得して解析し、それを返すまでの時間がタイト ループでの NOOP 割り当てよりも遅くなることが予想されるかどうかを尋ねている場合は、そうです。

50µsが速いか遅いかを尋ねているなら...それは本当にあなた次第です.

于 2013-06-21T02:53:21.610 に答える