splFixedArray和PHP array的简单性能测试对比

自从5.3版本开始,PHP在SPL扩展中提供了一个叫做splFixedArray的数组[链接],splFixedArray数组相比标准的PHP数组更接近于C语言的数组,而且由于splFixedArray没有使用散列(Hash)存储方式,因此效率更高。下面我们就写一个简单的脚本来测试一下它们两者之间的性能差别。

测试环境

Windows 8.1 64位
WampServer 2.4

测试脚本代码

$size = 1000000;
$format = 'Time spent of %s(%d) is : %f seconds.
'
; // test of splFixedArray $spl_arr = new splFixedArray($size); $start_time = microtime(true); for ($i = 0; $i < $size; $i++) { $spl_arr[$i] = $i; } $time_spent = microtime(true) - $start_time; printf($format, "splFixedArray", $size, $time_spent); // test of PHP array $php_arr = array(); $start_time = microtime(true); for ($i = 0; $i < $size; $i++) { $php_arr[$i] = $i; } $time_spent = microtime(true) - $start_time; printf($format, "PHP array", $size, $time_spent);
测试结果

测试结果截图
在这个测试中,我们分别向两个不同的数组中插入100万个元素,结果PHP数组花费的时间比splFixedArray慢0.1s~0.2s之间,因此splFixedArray在性能上确实比PHP array要高的,不过splFixedArray的使用是有条件限制的,比如初始化的时候一定要设置好它的大小(size),以及不能使用整数以外的key等。

你可能感兴趣的:(PHP,php)