C#のメモリ使用量について


C#のWindowsフォームアプリケーションを作っています。  
ビルド環境はVisual Studio 2010です。

数百件のバッチ処理を行っており、  
LocalReportによる画像帳票の作成や、  
WPFによる画像変換を行っています。

処理件数に応じて使用メモリ（プライベートワーキングセット）が増えていきます。  
ハンドル数、ユーザーオブジェクト数、GDIオブジェクト数は増えません。

メモリリークの可能性もあるかと思い、  
処理件数とメモリの利用状況をログに取りました。

すると、200件程度までは処理件数に応じてメモリを消費していきますが、  
800MBぐらいで頭打ちになり、そこからは使用メモリ量が増えません。

このような場合、メモリリークを疑うべきでしょうか。  
それともヒープ領域が空いている場合は、  
なるべくメモリを使おうとしていると解釈すべきでしょうか。




LocalReportのオブジェクトが削除されずにヒープに残っているのが問題でした。  
以下の設定をapp.configに追加することによって、メモリの使用量は激減しました。

[code]

    <runtime>
        <NetFx40_LegacySecurityPolicy enabled="true"/>
    </runtime>
    
[/code]

参考URL：  
<https://stackoverflow.com/questions/6220915/very-high-memory-usage-in-
net-4-0/34184809#34184809>




LocalReportのオブジェクトが削除されずにヒープに残っているのが問題でした。  
以下の設定をapp.configに追加することによって、メモリの使用量は激減しました。

[code]

    <runtime>
        <NetFx40_LegacySecurityPolicy enabled="true"/>
    </runtime>
    
[/code]

参考URL：  
<https://stackoverflow.com/questions/6220915/very-high-memory-usage-in-
net-4-0/34184809#34184809>

