C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 54 を表示中)
■30328 / )  Re[7]: C++/CLIでメモリ解放が遅い
□投稿者/ Azulean (251回)-(2008/12/21(Sun) 16:11:46)
> マネージオブジェクトの解放の仕方がC++/CLIではDllImportを用いた場合やマネージドC++の場合とで違うということかもしれません。
> (もしくはメモリ展開状態が違うというか・・・)
DllImportの先のコードは全てアンマネージコード(ネイティブ)ですよね?(/clrオプションなどがついていない)
deleteを実行した時点でその場でメモりは解放されるかもしれません。

C++/CLIのdeleteは見た目こそ同じですが、マネージオブジェクトに対して実行した場合はDisposeを呼び出したのと同等の扱いを受けるだけで、マネージオブジェクトが使用していたメモリ領域は、すぐには解放されません。(例:メンバー変数にある巨大な配列(array<T>^)等)
ガベージコレクションが行われるタイミングで解放されるかもしれません。

VC2003で作成したものは、.NET Framework 1.1で動くものですので、詳細には語れません。申し訳ないです。
解決済み
返信 編集キー/


管理者用

- Child Tree -