zoukankan      html  css  js  c++  java
  • php方法传值和传引用性能比较

    测试代码test.php:

    <?php
    
    function microtime_float()
    {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }
    
    function a($arr) {
         $data = [];
          foreach($arr as $var) {
                $data[] = $var;
              }
    
           return $data;
    }
    
    function b(&$arr) {
         $data = [];
          foreach($arr as $var) {
                $data[] = $var;
              }
    
           return $data;
    }
    
    $arr = [
     [
      'aaa' => [
       'aaa'=>'bbb',
       'bbb'=>'bbb',
       'ccc'=>'bbb',
       'ddd'=>'bbb',
       'eee'=>'bbb',
       'fff'=>'bbb',
       'add'=>'bbb',
       'dse'=>'bbb',
       'dad'=>'bbb',
       'dsa'=>'bbb',
       'das'=>'bbb',
       'ewq'=>'bbb',
       'qer'=>'bbb',
       'qad'=>'bbb',
       'asz'=>'bbb',
       'gda'=>'bbb',
       'abc'=>'bbb',
       'vbv'=>'bbb',
       'ewq'=>'bbb',
       'tew'=>'bbb',
      ],
      'bbb' => [
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>'bbb',
       'qaa'=>[
                    'aaa'=>'bbb',
                    'bbb'=>'bbb',
                    'ccc'=>'bbb',
                    'ddd'=>'bbb',
                    'eee'=>'bbb',
                    'fff'=>'bbb',
                    'add'=>'bbb',
                    'dse'=>'bbb',
                    'dad'=>'bbb',
                    'dsa'=>'bbb',
                    'das'=>'bbb',
                    'ewq'=>'bbb',
                    'qer'=>'bbb',
                    'qad'=>'bbb',
                    'asz'=>'bbb',
                    'gda'=>'bbb',
                    'abc'=>'bbb',
                    'vbv'=>'bbb',
                    'ewq'=>'bbb',
                    'tew'=>[
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>'bbb',
                        'caa'=>[
                            'aaa'=>'bbb',
                            'bbb'=>'bbb',
                            'ccc'=>'bbb',
                            'ddd'=>'bbb',
                            'eee'=>'bbb',
                            'fff'=>'bbb',
                            'add'=>'bbb',
                            'dse'=>'bbb',
                            'dad'=>'bbb',
                            'dsa'=>'bbb',
                            'das'=>'bbb',
                            'ewq'=>'bbb',
                            'qer'=>'bbb',
                            'qad'=>'bbb',
                            'asz'=>'bbb',
                            'gda'=>'bbb',
                            'abc'=>'bbb',
                            'vbv'=>'bbb',
                            'ewq'=>'bbb',
                            'tew'=>[
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>'bbb',
                                'qaa'=>[
                                    'aaa'=>'bbb',
                                    'bbb'=>'bbb',
                                    'ccc'=>'bbb',
                                    'ddd'=>'bbb',
                                    'eee'=>'bbb',
                                    'fff'=>'bbb',
                                    'add'=>'bbb',
                                    'dse'=>'bbb',
                                    'dad'=>'bbb',
                                    'dsa'=>'bbb',
                                    'das'=>'bbb',
                                    'ewq'=>'bbb',
                                    'qer'=>'bbb',
                                    'qad'=>'bbb',
                                    'asz'=>'bbb',
                                    'gda'=>'bbb',
                                    'abc'=>'bbb',
                                    'vbv'=>'bbb',
                                    'ewq'=>'bbb',
                                    'tew'=>'bbb',
                                ],
                            ],
                        ],
                    ],
                ],
      ],
            'ccc' => [
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>'bbb',
                'caa'=>[
                    'aaa'=>'bbb',
                    'bbb'=>'bbb',
                    'ccc'=>'bbb',
                    'ddd'=>'bbb',
                    'eee'=>'bbb',
                    'fff'=>'bbb',
                    'add'=>'bbb',
                    'dse'=>'bbb',
                    'dad'=>'bbb',
                    'dsa'=>'bbb',
                    'das'=>'bbb',
                    'ewq'=>'bbb',
                    'qer'=>'bbb',
                    'qad'=>'bbb',
                    'asz'=>'bbb',
                    'gda'=>'bbb',
                    'abc'=>'bbb',
                    'vbv'=>'bbb',
                    'ewq'=>'bbb',
                    'tew'=>[
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>'bbb',
                        'qaa'=>[
                            'aaa'=>'bbb',
                            'bbb'=>'bbb',
                            'ccc'=>'bbb',
                            'ddd'=>'bbb',
                            'eee'=>'bbb',
                            'fff'=>'bbb',
                            'add'=>'bbb',
                            'dse'=>'bbb',
                            'dad'=>'bbb',
                            'dsa'=>'bbb',
                            'das'=>'bbb',
                            'ewq'=>'bbb',
                            'qer'=>'bbb',
                            'qad'=>'bbb',
                            'asz'=>'bbb',
                            'gda'=>'bbb',
                            'abc'=>'bbb',
                            'vbv'=>'bbb',
                            'ewq'=>'bbb',
                            'tew'=>'bbb',
                        ],
                    ],
                ],
            ],
     ]
    ];
    $time = microtime_float();
    echo 'first start: '.$time."
    ";
    
    //for ($i = 0 ; $i<5000000; $i++) {
    //     
    //  a($arr);
    //}
    a($arr);
    
    $end = microtime_float();
    echo 'first end:'.$end."
    ";
    echo 'value used:'.bcsub($end , $time,4);
    echo "
    ";
    echo "
    ";
    echo "
    ";
    
    $time = microtime_float();
    echo 'second start:'.$time."
    ";
    
    //for ($i = 0 ; $i<5000000; $i++) {
    //  b($arr);
    //}
    
    b($arr);
    
    $end = microtime_float();
    echo 'second end:'.$end."
    ";
    echo 'second used:'.bcsub($end,$time,4);
    echo "
    ";
    

    测试方法:

    watch -n 1 -d php test.php
    
    // 输出 
    first start: 1539332451.0195
    first end:1539332451.0197
    value used:0.0002
    
    
    
    second start:1539332451.0198
    second end:1539332451.0198
    second used:0.0000
    
    first start: 1539332463.6168
    first end:1539332463.6169
    value used:0.0001
    
    
    
    second start:1539332463.6169
    second end:1539332463.6169
    second used:0.0000

    结论:

    • 传引用的性能要高于传值,特别是传递的值比较大的时候,性能会很明显。这是因为传引用只是复制了地址(一个16进制数)
    • 并发的瓶颈一般不会再php,而是在框架、在数据库。
  • 相关阅读:
    CF 936C Lock Puzzle——构造
    LOJ 2980 「THUSCH 2017」大魔法师——线段树
    LOJ 2979 「THUSCH 2017」换桌——多路增广费用流
    LOJ 2978 「THUSCH 2017」杜老师——bitset+线性基+结论
    LOJ 2997 「THUSCH 2017」巧克力——思路+随机化+斯坦纳树
    LOJ 2557 「CTSC2018」组合数问题 (46分)
    bzoj 3158 千钧一发 —— 最小割
    CF1092 D & E —— 思路+单调栈,树的直径
    bzoj 5120 无限之环 & 洛谷 P4003 —— 费用流(多路增广SPFA)
    bzoj 1070 修车 —— 费用流
  • 原文地址:https://www.cnblogs.com/gelu/p/9778864.html
Copyright © 2011-2022 走看看