PHP-多数のarray_mergeの最適化()
私が今話そうとしている小さなヒント、私はかなり長い間学びました。 しかし、最適化が現在のプロジェクトですでにかなりの時間を節約するのに役立ったのはこの場所であることがわかったので、私はそれを一般の人々と共有することにしました(男性は知りません、ええ)。
簡単に言うと、ここにテストスクリプトとその出力を示します。
$ start = microtime ( true ) ;
$ res1 = array ( ) ;
for ( $ i = 0 ; $ i < 1000 ; $ i ++ ) {
$ res1 = array_merge ( $ res1 、 array ( 1、2、3 ) ) ;
}
echo "1000 merges:" 。 ceil ( ( microtime ( true ) - $ start ) * 1000 ) 。 「ms \ n 」 ;
$ start = microtime ( true ) ;
$ toMerge = array ( ) ;
for ( $ i = 0 ; $ i < 1000 ; $ i ++ ) {
$ toMerge [ ] = array ( 1、2、3 ) ;
}
$ res2 = call_user_func_array ( 'array_merge' 、 $ toMerge ) ;
echo "call_user_func_array( 'array_merge'、..):" 。 ceil ( ( microtime ( true ) - $ start ) * 1000 ) 「ms \ n 」 ;
echo "2つの配列が等しいというのは本当ですか?それは同じです" ;
var_export ( $ res2 === $ res1 ) ;
エコー "。 \ n " ;
~ % php ~/tmp/array_merge.php
1000 merges: 980ms
call_user_func_array('array_merge',..): 11ms
Is it true that the two arrays are equal? It is true.
大幅な節約になります。 おそらく誰かが役に立つでしょう。
Source: https://habr.com/ru/post/J101608/
All Articles