PHP Objects vs Arrays — Performance comparison while iterating

前端 未结 10 1784
青春惊慌失措
青春惊慌失措 2020-11-27 11:25

I have a huge amount of PHP objects for a neural network for which I have to iterate over and perform some maths on. I was wondering if I would be better off using an associ

10条回答
  •  离开以前
    2020-11-27 12:00

    I used this code for "profiling" (1000 instances, 1000.000 reads/writes):

    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();

    It outputs in my LINUX hosting this stuff:

    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
    

    so in a conclusion: objects are slower even on PHP 5.2. Don't use objects unless you really need their oop features.

提交回复
热议问题