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

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

测试环境

Windows 8.1 64位
WampServer 2.4

测试脚本代码
<?php
$size = 1000000;
$format = 'Time spent of %s(%d) is : %f seconds.</br>';

// 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等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值