PHPのメモリ解放問題について
PhpExcelクラスを使用する際、比較的大きなExcelデータドキュメントを開くと、 Fatalerror:Allowedmemorysize of 67108864 bytes used (試してみた)が発生するexample/admin/add_mysql.php の 50 行目このエラーは、ページ メモリが使い果たされたことを意味します。ここで解決策について話しましょう:
考えられることは 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万バイト以上が不足しているのは明らかです。その理由はわかりません。 . 説明できるといいですね。