3

いくつかのDLLが構築され、リンクされている巨大なC ++ Builder 2010アプリケーションなどで、長期間にわたって蓄積されるメモリリークを追跡するための最良の方法は何でしょうか。問題が発生する前に、アプリケーションをターゲットマシンで1週間ほど実行する必要があるとします。AQTimeなどのようなプロファイリングアプリケーションが利用できないと仮定しましょう。標準のIDEとおそらくいくつかのコードを使用するだけです。

私の最初のアイデアは、すべてのクラスで使用するマクロを作成して、最初に各クラスタイプで使用されるインスタンスの数とスペースを追跡することでした。

4

1 に答える 1

2

RTLは、メモリマネージャとしてFastMMを使用します。FastMMは、メモリリークのレポートとトレースをサポートしています。RTLに含まれているFastMMのネイティブバージョンは簡略化されたバージョンですが、最小限のリークレポートをサポートしています。実行時にRTLのグローバルReportMemoryLeaksOnShutdown変数をtrueに設定すると、アプリを閉じるとFastMMが基本的なリークレポートを生成します。より高度な使用法については、FastMMのフルバージョンをダウンロードしてアプリに追加すると、RTLのネイティブバージョンが置き換えられます。その後、必要に応じてFastMMを構成できます。

于 2013-03-05T19:50:59.400 に答える