PHP の設定解除による変数の破棄とメモリの解放に関連する問題
PHP を unset すると変数が破壊され、メモリの問題が解放されます
以下の内容は、Ah Piao のブログ http://leepiao.blog.163.com/blog/static/485031302010718105814266/ より引用
?
?
PHP の unset() 関数は、変数をクリアして破棄するために使用されます。 unset() を使用して、未使用の変数を破棄できます。ただし、unset() を使用しても、変数が占有しているメモリを破壊できない場合があります。まず例を見てみましょう:
<?php $s=str_repeat('1',255); //产生由255个1组成的字符串 $m=memory_get_usage(); //获取当前占用内存 unset($s); $mm=memory_get_usage(); //unset()后再查看当前占用内存 echo $m-$mm; ?>
最後に、unset() 前に占有されていたメモリから unset() 後に占有されていたメモリを引いた値を出力します。これが正の数の場合、unset($s) がメモリ (または他のメモリ) から $s を破壊したことを意味します。つまり、unset() の後、メモリ使用量は削減されます) が、PHP5 と Windows プラットフォームでは、結果は -48 でした。これは、unset($s) は変数 $s が占有するメモリを破壊しないことを意味しますか?別の例を見てみましょう:
<?php $s=str_repeat('1',256); //产生由256个1组成的字符串 $m=memory_get_usage(); //获取当前占用内存 unset($s); $mm=memory_get_usage(); //unset()后再查看当前占用内存 echo $m-$mm; ?>
? この例は上記の例とほぼ同じですが、唯一の違いは、$s が 256 個の 1 で構成されており、最初の例よりも 1 が 1 つ多いことです。これは、unset($s) が $s によって占有されていたメモリを破壊したことを意味しますか?
上記の 2 つの例を通じて、次の結論を導き出すことができます。
結論1. unset() 関数は、変数値が 256 バイトを超えるメモリ空間を占有している場合にのみメモリ空間を解放できます。
では、変数値が 256 を超える限り、unset を使用するとメモリ領域を解放できますか?別の例でテストしてみましょう:
<?php $s=str_repeat('1',256); //这和第二个例子完全相同 $p=&$s; $m=memory_get_usage(); unset($s); //销毁$s $mm=memory_get_usage(); echo $p.'<br />'; echo $m-$mm; ?>
ページを更新すると、最初の行には 256 個の 1 があり、2 行目は -48 であることがわかります。$s を破棄したのは当然であり、$p は $ を参照する単なる変数です。さらに、unset($s) 後のメモリ使用量は、unset() 前に比べて増加しています。次の例を実行してみましょう:
<?php $s=str_repeat('1',256); //这和第二个例子完全相同 $p=&$s; $m=memory_get_usage(); $s=null; //设置$s为null $mm=memory_get_usage(); echo $p.'<br />'; echo $m-$mm; ?>
ここで、出力 $p に内容がないことがわかります。unset() の前後でのメモリ使用量の差は 224 です。つまり、変数によって占有されていたメモリがクリアされています。この例の $s=null は、次のように unset() で置き換えることもできます:
<?php $s=str_repeat('1',256); //这和第二个例子完全相同 $p=&$s; $m=memory_get_usage(); unset($s); //销毁$s unset($p); $mm=memory_get_usage(); echo $p.'<br />'; echo $m-$mm; ?>
unset() を使用して $s と $p の両方を破棄します。このとき、メモリ使用量の差も 224 であり、これによってメモリも解放できることがわかります。次に、別の結論を得ることができます:
結論 2. この変数を指すすべての変数 (参照変数など) が破棄された場合のみ、記憶を解放します。
この記事の例を読めば、誰もが unset() について理解できるはずです。少なくとも、変数が効果がない場合にメモリを解放するために unset() も使用します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

ラップトップ用の最初の LPCAMM2 モジュールはすでに出荷されており、将来的にはデスクトップのメインボードにも CAMM2 が搭載される予定です。 CAMM2 と LPCAMM2 には互換性がなく、デスクトップ PC であっても注意が必要です

IT 管理者またはテクノロジーの専門家であれば、自動化の重要性を認識している必要があります。特に Windows ユーザーにとって、Microsoft PowerShell は最高の自動化ツールの 1 つです。 Microsoft は、サードパーティのアプリケーションをインストールする必要なく、自動化のニーズに対応するさまざまなツールを提供しています。このガイドでは、PowerShell を活用してタスクを自動化する方法について詳しく説明します。 PowerShell スクリプトとは何ですか? PowerShell の使用経験がある場合は、コマンドを使用してオペレーティング システムを構成したことがあるかもしれません。スクリプトは、.ps1 ファイル内のこれらのコマンドの集合です。 .ps1 ファイルには、基本的な Get-Help など、PowerShell によって実行されるスクリプトが含まれています。

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

「Go 言語開発の要点: 5 つの人気フレームワークの推奨事項」 高速で効率的なプログラミング言語として、Go 言語はますます多くの開発者に好まれています。開発効率を向上させ、コード構造を最適化するために、多くの開発者はフレームワークを使用してアプリケーションを迅速に構築することを選択します。 Go 言語の世界には、選択できる優れたフレームワークが数多くあります。この記事では、5 つの人気のある Go 言語フレームワークを紹介し、読者がこれらのフレームワークをよりよく理解して使用できるように、具体的なコード例を示します。 1.GinGin は高速な軽量 Web フレームワークです。

1. Java は post インターフェイスを呼び出します 1. Java に付属の URLConnection または HttpURLConnection を使用します 他の jar パッケージをダウンロードする必要はありません URLConnection を呼び出します インターフェイスの応答コードがサーバーによって変更されている場合、応答メッセージは受信できません。応答コードが正しい場合にのみ受信されます。 publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt を返します。

インターネットの発達や情報技術の進歩によりビッグデータの時代が到来し、データ分析や機械学習などの分野も広く活用されています。これらの分野では、タスクのスケジューリングは避けられない問題です。効率的なタスクのスケジューリングを実現する方法は、効率を向上させるために重要です。この記事では、Golang の Web フレームワーク Echo フレームワークを使用して分散タスク スケジューリングを実装する方法を紹介します。 1. Echo フレームワークの概要 Echo は、高性能、スケーラブル、軽量の GoWeb フレームワークです。 HTTPに基づいています

win10 システムは使用する価値のある優れたシステムです。強力な互換性と高いインテリジェンスにより、win10 システムの使用に基本的に問題はありません。しかし、最近、多くの友人が、自分のコンピュータにブルーディスクが頻繁に表示されると報告しています。そして常にエラーコードmemorymanagementが表示されます。何が起こっているのでしょうか?今日はwin10で頻繁に発生するブルースクリーンの解決策とメモリ管理の終了コードを編集者がお届けしますので、ゲームが必要な方はぜひご覧ください。 win10memorymanagement ブルー スクリーンの解決策: 解決策 1: 1. 「Win キー + R」+「control + Enter」を使用して、コントロール サーフェスに入ります。

Laravel は、拡張性と効率性に優れた人気の PHP フレームワークであり、開発者が高品質の Web アプリケーションを迅速に構築できる強力なツールとライブラリを多数提供しています。その中でも、LaravelEcho と Pusher は、WebSocket 通信を簡単に実装できる 2 つの非常に重要なツールであり、この記事では、Laravel アプリケーションでこれら 2 つのツールを使用する方法について詳しく説明します。 WebSocket とは何ですか? Webソケット
