ユーザーモード(非カーネルモード)プログラムからキャッシュをフラッシュする必要はありません。OS(Linux、ubuntuの場合)は、他のプログラムからの「残り物」がなく、アプリケーションに新しい仮想アドレス空間を提供します。特別なOSシステムコールを実行しないと、プログラムは他のアプリケーションで使用されているメモリに到達することさえできません。したがって、キャッシュの観点からは、アプリケーションは、それに関する限り、クリーンな状態から開始します。cacheflush()システムコールがあります(構文はOSによって異なります)が、一般的なユーザーモードアプリケーションで異常なことをしているのでない限り、キャッシュが存在することさえ忘れることができます。プログラムを高速化するためだけにあり、OSはCPUのMMUを介してプログラムを管理します。アプリは、プログラムを管理する必要はありません。
「メモリリーク」(アプリケーションが解放/削除するのを忘れたアプリケーションに割り当てられたメモリ。これは、アプリケーションがそれを忘れると「永久に失われる」)についても聞いたことがあるかもしれません。(潜在的に)実行時間の長いプログラムを作成している場合、メモリリークは間違いなく懸念事項です。ただし、リークされたメモリは、それをリークしたアプリケーションの問題にすぎません。最新の仮想メモリ環境では、アプリケーションAがメモリをリークしても、アプリケーションBには影響しません。アプリケーションAが終了すると、OSは仮想アドレス空間をクリアし、リークされたメモリはその時点でシステムによって再利用されます。システムリソースをより長く消費します。多くの場合、プログラマーは特にメモリ割り当てを解放/削除しないことを選択します。アプリケーションが終了すると、OSがメモリの全量を自動的に再利用することを知っています。プログラムが仮想アドレス空間を使い果たして繰り返し実行し続けない限り、その戦略に問題はありません。