5

私は非常に高性能なC++ライブラリを持っています。newグローバルとを使用する必要がないように、メモリプールを作成することを考えていますdelete。私はいくつかの読書をしました。しかし、これがパフォーマンスとメモリリークの削減に役立つかどうかを知りたいと思いました。

4

3 に答える 3

2

あなたのライブラリがカスタム アロケータの恩恵を受けると信じるに足る明確な理由がない限り、仮にあったとしてもあまり役に立たない可能性があります。

無向最適化を実行しようとしているようです。しないでください。最初にプロファイリングを使用してパフォーマンス データを収集してから、必要に応じて最適化を検討してください。

于 2013-01-07T07:13:15.987 に答える
1

アプリケーションの正確なメモリ割り当てパターンに微調整されたメモリアロケータは、割り当てパターンが「汎用」とは異なり、予測可能であることを考えると、一般的なアロケータよりも優れている必要があります。ただし、メモリリークの削減または検出はまったく別の問題であり、パフォーマンスが懸念される前に解決する必要があります。

于 2013-01-07T07:12:20.293 に答える
0

私の経験によると、独自のメモリ プールを実装してもパフォーマンスは向上しません。マルチスレッド環境では、ミューテックスを使用してプールでメモリの割り当てと解放を保護する必要がありますが、ミューテックスはシステムの新規作成/削除と比較して非常に重いためです。

また、メモリリークを減らすのにも役立ちません。メモリ リークを減らすには、割り当てたメモリをすべて解放する必要があります。プールではなく、プログラムで実際に解決する必要があります。

唯一の利点は、サードパーティのツールに依存せずにメモリ使用量を追跡できることです。

于 2013-01-07T07:17:07.850 に答える