ホームページ > バックエンド開発 > PHPチュートリアル > 兄さん、PHP 関数の実行時にメモリが解放されないのはなぜですか?

兄さん、PHP 関数の実行時にメモリが解放されないのはなぜですか?

WBOY
リリース: 2016-06-13 12:41:23
オリジナル
1075 人が閲覧しました

PHP 関数の実行時にメモリが解放されないのはなぜですか?
最近、必要な構造データを取得するためのファイルの処理が必要なため、大きなファイルをインポートしました。
大量のデータを配列に保存します。
処理中に大量のメモリが消費されますが、memory_limit の設定を十分に大きくしておけば問題ありません。
処理の途中で、不要なものの設定も解除しました。ただし、me​​mory_get_usage() は関数呼び出しの前後でメモリ比較を出力します。
関数の呼び出し後、メモリが大幅に減少していないことがわかりました。これらの大きな配列は設定解除されています。同じことです。
インポートされるファイルの量が多くない場合、メモリ オーバーフローのエラー メッセージは表示されません。ただし、ファイルが十分に大きい場合。実行プロセス中に、
関数が呼び出された後も、メモリは大量のスペースを占有します。そしてメモリオーバーフローを引き起こします。
これでは少し憂鬱になります。関数呼び出し後にローカル変数空間が解放されていませんか?
メモリリークですか?同じ問題に遭遇した人はいますか?誰かが同じ問題に遭遇したか、それについて知っていることを願っています。一緒に話し合いましょう。ありがとう。
ps: スコアがかなり小さいので、これしか方法がありません。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート