2011-10-25 11 views
5

私は低速のC++アプリケーションをベンチマーク/最適化しています。いくつかのスタックショットを取ると、アプリケーションのリリースビルドがデバッグヒープを使用しています見つかった痕跡が示すだろう:Visual Studio 2010のVC++:デバッグヒープを使用したビルドのリリース

ntdll.dll!string "Enabling heap debug options\n"() + 0x11056 bytes 

これは私がオンラインまったく同じ環境でこの問題について、二、三、他の苦情を見るのWindows 7上で動作する64ビットアプリケーションであるが、任意の応答なし。

WindowsまたはVisual StudioがリリースビルドC++プロジェクトのデバッグヒープを使用する理由を知りたい人はいますか?

+0

+1スタックショットを使用しています。 –

答えて

6

The debug heap is used when a program is run under debugger(プロファイラは、多くの場合、デバッガとして表示されます)。バイパスを回避するには、プログラムをデバッグせずに起動し、デバッガを実行中のプロセスにアタッチする必要があります。

+0

ありがとうございます。私はそれを知らなかったとは知らないが、リリースアプリケーションにデバッグヒープを使用させることのメリットはないと認めているが、現実の世界をできるだけ模倣するリリースのポイントではないシナリオ!? –

+0

@Mahmoud Al-Qudsi:これは実際にはよく知られていることではない、私もそれを知って驚いた。さて、デバッグヒープはデバッグを容易にし、デバッガはデバッグを容易にするので、それらを組み合わせることにしました。また、それはVisual Studioなどではできません.Windowsによって行われます。 – sharptooth

関連する問題