我确实运行了一个基准测试。
<?php
function apcutest($prepend = FALSE) {
apcu_clear_cache();
$prefix = $suffix = __FILE__ . __FILE__ . __FILE__;
$keys = [];
for ($i = 0; $i < 100000; ++$i) {
apcu_store(
$keys[] = $prepend
? $prefix . $i
: $i . $suffix,
md5("($i)"));
}
$t0 = microtime(TRUE);
foreach ($keys as $key) {
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
apcu_fetch($key);
}
$t1 = microtime(TRUE);
return ($t1 - $t0) * 1000;
}
$dts = [];
$dts[] = apcutest(FALSE);
$dts[] = apcutest(TRUE);
$dts[] = apcutest(FALSE);
$dts[] = apcutest(TRUE);
$dts[] = apcutest(FALSE);
$dts[] = apcutest(TRUE);
print_r($dts);
我的机器上的结果:
Array
(
[0] => 415.98796844482
[1] => 413.39302062988
[2] => 414.03603553772
[3] => 415.08793830872
[4] => 413.25092315674
[5] => 414.61896896362
)
观察:在几次运行中,带后缀的版本似乎有一个很小但一致的优势。然而,随后的运行并未证实这一点。对于这个实验,两者之间没有统计学上显着的可测量差异。
结论:根据这个实验,使用前缀还是后缀都没有关系。这可能不是最终的答案,但这是我目前可以给出的答案。我想知道这个查找是如何实现的。