2011-06-19 7 views

答えて

8

int型、char型、bool型、構造体などのビルトイン型の変数は、関数が返ってくるとすぐにメモリが解放されます。関数が実行を開始するときに作成され、関数が戻るときに解放されるデータ構造の一部です)。

参照型の変数は、ガベージコレクタによって不要になったときに自動的に解放されます。

関数が復帰したときにメモリが解放されず、プログラムに問題が発生する可能性は低いです。

別の回答が記載されているように、問題がどこにあるかについての堅い証拠がない限り最適化しないでください。

11

は、私は関数実行後に変数を設定解除、いい方法ありますか?

いいえ、それは時間の無駄です。遅さがわかるまでは最適化しないでください。

3

ソフトウェアで問題が発生している場合は、無料のプロファイラXTE Profilerがあります。これにより、コード内のメモリリークやボトルネックを見つけることができます。また、現在、Telerikは独自のメモリプロファイラをリリースしました。現在、無料で利用可能ですが、ベータ版です。

3

一般に、C#で心配する必要がある唯一の「管理」は、クラスがIDisposableを実装するオブジェクトを破棄することです。これは一般にusing blocksによって行われます。

しばらくして、unsubscribe from an eventに覚えておく必要があります。

それ以外の場合は、数万のオブジェクトを割り当ててメモリに保存しない限り、心配する必要はありません。ガベージコレクタを信頼してください。

1

他人から指摘されているように、あなたは心配する必要があります。 1. IDisposableオブジェクトの呼び出しを呼び出す。 2.ハンドラの登録を解除する(存在する場合)。

これ以外にも、メモリプロファイラによってアラームが発生しない限り、最適化について心配する必要はありません。