現実には、コードはそれが主張することを行っておらず、今後も行うことはありません。ゴミです。
システムのバッファ キャッシング サブシステムを弱体化させ、マシンを急速にページングさせ、完全にロックアップのような症状を引き起こすだけです。特に、低速 (たとえば、5,400rpm のラップトップ ドライブ) のハード ドライブを搭載したシステムでは。
少なくとも、比較的少量の RAM を搭載したシステムでは。大量の RAM があり、実行中のアプリの負荷が比較的軽いシステムでは、そのプログラムは 2 GB のバッファー キャッシュを削除し、さまざまなものをディスクから再読み取りする必要があるため、さまざまな I/O 操作が遅くなります。何でも助けます。
そのようなことも必要ではありません。アプリがメモリを必要とする場合、システムは必要に応じてバッファ キャッシュからページを削除したり、メモリをディスクにページアウトしたりします (OS X では -- iOS では、応答性を維持するためにダーティ ページを大幅に書き込むことができるページャーはありません)。
を呼び出すpurge
と、さまざまなディスク バッファー キャッシュが削除され、コールド ブートの状態がシミュレートされますが、これもまた、ユーザー レベルのアプリのパフォーマンスを実際に向上させることなく、システムのキャッシュ メカニズムを弱体化させるだけです。マニュアル ページに記載されているように、コールド キャッシュ状態でアプリのパフォーマンスをテストするのに非常に役立ちますが、それでもpurge
削除できるすべてのものを削除するわけではないという点で少し疑わしいです。寒い状態をきれいにシミュレートしません。
Steve Jessep の非常に有効な点として、purge
(または同様の) への呼び出しがその場合のパフォーマンスを向上させる状況があるかもしれません。これは通常、ほぼ例外なく、ユーザー プロセス A が、ユーザー プロセス B、C、D、....、Z が近くまたはいずれかの時点で何を実行するかを知る方法がないという点で、一般的なケースでは崩壊します。遠い将来。例; A が何かをパージして、RSS フィード スクレイパー R が数 MB の XML を解析および永続化するためにリッピングし、すぐにパージを無効にする可能性があります。さらに悪いことに、R の最後の更新ではキャッシュにまだビットが潜んでいた可能性があり、R の更新は I/O に負荷をかけ、速度が遅くなり、コストが高くなります (バッテリ寿命のコストを含む)。