2009-03-10 26 views
0

私は単なるHTTPハンドラであるActiveXコントロールを使用します。 HTTPリクエストを送信し、レスポンスを取得してイベントを発生させます。ユーザーがActiveXコントロールを要求していないときは、ほとんど休止状態です。ユーザーからの別のHTTP要求の送信を待つだけです。奇妙なメモリリークの問題

OCXが存在するウィンドウが変更されない限り(フォーカスの消失、フォーカスの取得など)、メモリは静かなままです。上記の操作のそれぞれについて、私は約400バイトを失う。

どこでリークの可能性がありますか?

+0

あなたが提供した情報は十分ではありません。最も詳細な説明を追加してください(おそらくコードの一部で)。 – bayda

+0

@MSN :-)ありがとう。言及するのを忘れていた1つの警告は、もはや漏れないC++アプリケーションのMFCにあります。しかし、.Net C#アプリケーションでは、OANCCACHE = 1 env変数設定の後でもリークします。 .Net AxInteropのことかもしれません。 windbgを使用すると、.NETの世界では痛いほど痛いです.-( – rptony

答えて

1

HTTP文字列がBSTR秒で渡されたとすると、BSTR cachingに実行されている可能性があります。確認するには、環境変数OANOCACHEを1に設定するか、直接OaSetNoCache()を呼び出します。環境変数は、テストするのが簡単でなければなりません。

0

このリークを検出する可能性のある既製のプロファイリングツール(VCのデバッグモードでも、リークされた割り当てをトレースするオプションがあります)を調べます。