ホームページ >バックエンド開発 >PHPチュートリアル >PHPのメモリ解放に関する問題について

PHPのメモリ解放に関する問題について

WBOY
WBOYオリジナル
2016-06-13 12:14:23853ブラウズ

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万バイト以上が不足しているのは明らかです。その理由はわかりません。 . 説明できるといいですね。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。