ちょいと故があって、LaravelとplainなPHPとでの、バッチの処理コストを確認してみたんだけど………思ったより差異があって、幾分、びっくり(苦笑
なので、参考とmemo程度に、記録を残しておきます。
環境その他によると思うので、参考値程度に。
PHPのバージョンは、ちょいと古くて7.1系で試してます。
端的には
echo memory_get_peak_usage(true), "\n";
の処理だけ、のバッチを
<?php $t = microtime(true); for($i = 0; $i < 10; ++$i) { $s = `php artisan Test`; //$s = `php batch.php`; } $te = microtime(true); var_dump($te - $t); var_dump($s);
ってな感じで回していきます。
なので
・処理時間は「10回処理した時」の時間
・食ってるメモリは「1回のバッチで食う」メモリ
ってな感じ。
勿論、処理時間はコロコロぶれるのですが。
大まか
・Laraveで、処理時間1.48秒、メモリは14680064バイト
・palinで、処理時間0.34秒、メモリは2097152バイト
ってな感じ。
処理速度が4倍、メモリが7倍。
ふむ……普通の処理なら「そんなに気にするほどのものでもない」し、実際にもうちょっと「中身のあるバッチ」を組むと差異は恐らく縮んでいく可能性が想起されるし、plainなPHPで組むとそれはそれで色々と懸念とか課題とか山積みではあるんだけど、とはいえ「状況によっては無視しにくい」ような気もするなぁ。