Skip to content

Instantly share code, notes, and snippets.

@sandacn
Created April 16, 2011 09:10
Show Gist options
  • Save sandacn/923000 to your computer and use it in GitHub Desktop.
Save sandacn/923000 to your computer and use it in GitHub Desktop.
## 测试一个特殊case下的性能优化
<?php
# 测试的结果表明,使用第一种方法是最快的,另外注意在for之前计算好最大值
$server_string = '192.168.1.52:11211,192.168.1.53:11211,192.168.1.54:11211,192.168.1.50:11211,192.168.1.51:11211';
$server_string = '192.168.1.52:11211:1,192.168.1.53:11211:2,192.168.1.54:11211:3,192.168.1.50:11211:4,192.168.1.51:11211:5';
$server_setting = explode(',',$server_string);
$MAX = 1000;
$start = microtime(true);
for ($k = 0; $k < $MAX; $k++) {
$servers = null;
for ($i = 0, $max = count($server_setting); $i < $max; $i++) {
$setting = explode(':', $server_setting[$i]);
$servers[$i] = array($setting[0], $setting[1]);
}
}
$end = microtime(true);
echo "array element:\t".($end - $start) . "\n";
$start = microtime(true);
for ($k = 0; $k < $MAX; $k++) {
$servers = null;
for ($i = 0, $max = count($server_setting); $i < $max; ++$i) {
$setting = explode(':', $server_setting[$i]);
$servers[$i] = array($setting[0], $setting[1]);
}
}
$end = microtime(true);
echo "array element ++i:\t".($end - $start) . "\n";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment