SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】php7の処理がphp5より良くなっているのが確認できる例

問題

php7ってphp5からいろいろ改善されているらしいですけど、何か違うんですか

php7

答え

例えば、多次元配列を用意すると、php5まではやたらとメモリを使っていたが、php7ではメモリ使用量が抑えられ、処理も速くなっている。

<?php
ini_set('memory_limit', '1G');

$a = array();
for($i = 0; $i < 50000; $i++){
        for($j = 0; $j < 100; $j++){
                $a[$i][$j] = '';
        }
}

var_dump(memory_get_usage());

上の処理をphp5で実行すると

# time php test.php
int(904399632)

real    0m2.959s
user    0m2.598s
sys     0m0.362s

php7で実行すると

# time /usr/local/php/7rc6/bin/php test.php
int(414851768)

real    0m0.802s
user    0m0.585s
sys     0m0.218s

メモリ使用量は半分以下、処理時間は3分の1以下!

ただ、多次元配列にするとやたらとメモリを消費するのは変わってないので、こういった書き方をするときは要注意。

関連するメモ

コメント