私はいくつかのイベントを受信するC ++サービスを持っています。それらは処理された後にファイルに書き込まれ、メッセージがメモリに保存されるまで、イベントを格納する大きなデータ構造があります。
書き込みが完了したら、すべてのクリーンアップを行いますメモリを格納する構造ですが、その後もメモリはダウンしていません。私はすべての共有ポインタを持っているので、最終的には何かが欠けていても、それらはしばらくしてからクリーンアップする必要がありますが、それも起こっていません。
サービスでvalgrindを実行しましたが、メモリリークは表示されません。 確認できる方法があるかどうか、メモリが占有されている場所を確認したいですか?
回答:
回答№1は1それは正常です。ほとんどの場合、メモリを解放することは純粋な効率低下であり、最新のシステムでは回避されます。
他の何かのためにメモリが必要ない場合、それを無料にする努力は明らかに無駄です。他の何かに必要な場合は、OSが再び使用するだけで無駄になるため、無駄になります。
現代のシステムは、選択の余地がない限り、メモリを途中で解放することなく、ある使用から別の使用に直接移行します。