時々メモリ不足になり (プロセスが不足して)、異常終了する PHP スクリプトがあります。スクリプトの終了時に「クリーンアップ」操作を実行できる機能が PHP にあるかどうかを知りたいです。「シャットダウン ハンドラ」を試しましたが、呼び出されないようです。
使用できる「シグナル ハンドラ」や「シャットダウン コールバック」などはありますか? スクリプトの終了時 (正常または異常) に何らかの処理を行う関数を呼び出したいと考えています。
時々メモリ不足になり (プロセスが不足して)、異常終了する PHP スクリプトがあります。スクリプトの終了時に「クリーンアップ」操作を実行できる機能が PHP にあるかどうかを知りたいです。「シャットダウン ハンドラ」を試しましたが、呼び出されないようです。
使用できる「シグナル ハンドラ」や「シャットダウン コールバック」などはありますか? スクリプトの終了時 (正常または異常) に何らかの処理を行う関数を呼び出したいと考えています。
PHP には、期待どおりに動作するクリーンアップ機能はありません。あなたができる/すべきことは、コードを見て、メモリを使い果たすことなく必要な操作を完了するために最適化する方法を確認することです。
PHP には、現在 PHP に割り当てられているメモリ量を取得できるmemory_get_usageという関数が組み込まれています。これにより、PHP が現在使用しているメモリの量を確認し、php.ini
ファイル内に割り当てられているメモリの量と比較できます。これに近づいたら、後退するか、このスレッドが中断した別のスレッドに戻ることができます。
PHP を微調整し、おそらくメモリを節約するためにできることをいくつか示します。そのうちのいくつかは、おそらく既にご存知でしょうが、同じ問題が発生した場合に私が見たものです。
php.ini
可能であればファイル内のメモリ量を増やすか、 ini_setを使用して PHP のメモリ サイズを増やしてみてください。メモリの量を増やすと、問題が一時的に解決する可能性がありますPHP は、大量のデータと大量の変換を処理できる必要がありますが、効率を上げるためにできることはすべて、その過程で役立つだけです。
これがお役に立てば幸いです、リアム-