メモリリークを修正することは良いことですが、メモリの問題とは別に知りたいのですが、メモリリークの修正はパフォーマンスの向上にも役立ちますか。
4 に答える
一般的に、はい。主な理由は、メモリリークが発生すると、プログラムが常にシステムから新しいメモリを取得し、キャッシュに保存されないことです。メモリを適切に解放すると、同じメモリがすぐに元に戻り、すでにキャッシュに保存されています。
目立たない方法で、おそらく。キャッシュのパフォーマンスが少し向上する可能性があります。また、システムが空きメモリがほとんどない状態で実行されている場合は、パフォーマンスに違いが生じる可能性がありますが、システムには、はるかに大きく、より顕著なパフォーマンスのボトルネックがほぼ確実にあります。
XDの割り当てを解除する時間を節約できるため、メモリリークは実際に何らかの方法でパフォーマンスを向上させます。ただし、もちろん、空きメモリが少なくなると、システムで何らかのパフォーマンスの問題が発生します。
これはコードにかなり依存する可能性があります。たとえば、deleteはオブジェクトのデストラクタを呼び出しています(メモリの割り当てを解除するのに時間がかかることに加えて)。これは、デストラクタのコードによっては時間がかかる可能性があります。反対に、キャッシュミスは小さなオブジェクトに関連し、ページフォールトは非常に大きなオブジェクトに関連するため、メモリリークを回避すると、パフォーマンスも大幅に向上します。
とは言うものの、パフォーマンスの最適化には、これよりもはるかに低い成果が得られる可能性が非常に高くなります。