ホームページ >バックエンド開発 >PHPチュートリアル >PHPのメモリ解放問題について
PhpExcel クラスを使用する場合、比較的大きな Excel データ ドキュメントを開くと、example/admin/add_mysql.php の 50 行目に Fatalerror:Allowedmemorysize of 67108864 bytes used (tryed to assign 27 bytes) のようなエラーが表示されますつまり、ページメモリが使い果たされています。次に、解決策について説明します:
私が考えることができる解決策は 2 種類あります。1 つ目は、php が使用できるシステム メモリを拡張することです。
1. php.ini ファイルで、memory_limit を変更します。 80M。値には独自の実際の値があります。
2. PHP ファイルで、in_set ("memory_limit", "80M") を直接使用してメモリ制限を変更します。
上記の状況はローカルホストと仮想ホストにのみ当てはまります。一般的な宇宙サーバーや開発プラットフォームでは基本的に許可されません。2 番目のページの PHP 実行によって消費されるメモリをできるだけ減らすことについて話しましょう。可能な限り:
unset() ステートメントを使用します。
1. 変数の解放: 実際、インターネット上には変数の使用例が多数ありますが、この場合、変数の設定を解除すると、その変数が占有しているメモリはシステムに返されず、シンボル変数が占有されます。詳細は Baidu でご覧いただけます。多くの説明があります)。
2. オブジェクトの解放: 特に phpexcel クラスを使用する場合、比較的大きなファイルを読み取る場合、オブジェクトは大量のメモリを占有します。例:
実行結果:
unset を使用した場合:
実行結果:
すごい! 、変数を解放してもスペースは減りませんが、それに比べて、3,300,000 バイト以上が不足していることは明らかです。理由はわかりません。あなたはそれをマスターすることができます。