开发者社区> 问答> 正文

PHP对象与数组—迭代时的性能比较

我有大量用于神经网络的PHP对象,必须对其进行迭代并对其进行一些数学运算。我想知道在类实例上使用关联数组是否会更好?

我正在处理3640对象周围的事物,并且500最重要的是要在周围的时间(最多)进行迭代,因此任何微优化都会有很大帮助。难道会$object['value']比做起来更快$object->value吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 14:19:24 413 0
1 条回答
写回答
取消 提交回答
  • 我将此代码用于“概要分析”(1000个实例,1000.000次读/写):

    function p($i) { echo '

    '; print_r($i); echo '
    '; }

    $t0 = microtime(true); for ($i=0; $i<1000; $i++) { $z = array(); for ($j=0; $j<1000; $j++) { $z['aaa'] = 'aaa'; $z['bbb'] = 'bbb'; $z['ccc'] = $z['aaa'].$z['bbb']; } } echo '

    arrays: '.(microtime(true) - $t0); p($z);

    $t0 = microtime(true); for ($i=0; $i<1000; $i++) { $z = (object) null; for ($j=0; $j<1000; $j++) { $z->aaa = 'aaa'; $z->bbb = 'bbb'; $z->ccc = $z->aaa.$z->bbb; } } echo '

    obj: '.(microtime(true) - $t0); p($z);

    echo '

    phpversion '.phpversion(); 它在托管这些东西的LINUX中输出:

    arrays: 1.1085488796234

    Array ( [aaa] => aaa [bbb] => bbb [ccc] => aaabbb ) obj: 1.2824709415436

    stdClass Object ( [aaa] => aaa [bbb] => bbb [ccc] => aaabbb ) phpversion 5.2.17 因此可以得出一个结论:即使在PHP 5.2上,对象也较慢。除非确实需要它们的oop功能,否则不要使用它们。

    2020-02-08 14:19:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载