|
测试版本: 旧版 PHP 5.5.29 ,新版 PHP 7.0.0 测试方法:
class PerformanceTest
{
private $time;
private $memory;
public function begin()
{
$this->time = $this->getTime();
$this->memory = $this->getMemory();
}
public function end()
{
$this->time = $this->getTime() - $this->time;
$this->time = round($this->time,7);//在这里才能格式化时间
$this->memory = $this->getMemory() - $this->memory;
$this->memory = $this->convert($this->memory);
echo "time:{$this->time}秒<br />";
echo "memory:{$this->memory}<br />";
}
public function getTime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
public function getMemory()
{
return memory_get_usage();
}
public function convert($size)
{
$unit=array('b','kb','mb','gb','tb','pb');
return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
}1.生成五十万个数组,并查询五十万次 key 是否存在 $a = array();
$b = new PerformanceTest();
$b->begin();
for($i=0;$i<500000;$i++){
$a[$i] = $i;
}
foreach($a as $i)
{
array_key_exists($i, $a);
}
$b->end();
/***
php 5.5n
time:0.131秒
memory:40.15 mb
php 7.0n
time:0.0780001秒
memory:14 mb
***/测试结果如下: ➜ time php test.php php test.php 0.60s user 0.05s system 98% cpu 0.667 total ➜ time /usr/local/php7/bin/php test.php /usr/local/php7/bin/php test.php 0.05s user 0.02s system 92% cpu 0.073 total PHP7 速度是 PHP5.5 的 9 倍 2. 生成五十万个数组,并查询五十万次 value 是否存在 $a = array();
$b = new PerformanceTest();
$b->begin();
for($i=0;$i<10000;$i++){
$a[$i] = $i;
}
foreach($a as $i)
{
in_array($i, $a);
}
$b->end();
/***
php 5.5n
time:0.6560001秒
memory:845.49 kb
php 7.0n
time:0.095秒
memory:388 kb
***/➜ time php test.php php test.php 0.79s user 0.01s system 99% cpu 0.809 total ➜ time /usr/local/php7/bin/php test.php /usr/local/php7/bin/php test.php 0.08s user 0.01s system 97% cpu 0.091 total PHP7 速度是 PHP5.5 的 8.7 倍 |