ASP.NET初心者です。
おひとつお伺いしたいのですが、ASP.net上では参照が終わればメモリーは解放されると認識しており、
マネージドやアンマネージドなど気にする必要性はあるのでしょうか?
明示的に指示せずとも自動で解放されるものと認識しておるのですが、間違っているでしょうか?
ご回答お願いいたします
アプリケーションにおけるリークには大別してメモリリークとリソースリークがありますが、このスレッドで質問者さんが気にしているのはメモリーリークだけですか?
メモリーリークのみです。分かりにくくてすみません。
リソースリークについてはasp.netのよっぽどの事をしない限り発生しないと考えています
タイトルに「アンマネージドとマネージドの必要性」とありますがどういう意味ですか? 特にアンマネージドの方。質問者さんの ASP.NET Web アプリでアンマネージドリソースを使うのであれば、 .NET のガベージ コレクターは、アンマネージ メモリの割り当てや解放を行いませんので、そのリソースの開放は気にせざるを得ないということになると思いますが。
> リソースリークについてはasp.netのよっぽどの事をしない限り発生しないと考えています
そんなことはなくて、例えば SQL Server にアクセスしていて、Connection を Close してないとか、Close が書いてあっても例外が発生するとそのコードが実行されないなど、きちんと処理が書かれてないコードをよく目にしますよ。
そういったことは無論なのですが、c99のように確保分を閉じたり、ASP.net上で書かれたDLL、win32などを用いてないDLLを利用したときに明示的に閉じたりとそういったことは必要ないとおもってたのですが、不安になりまして質問させていただいたしだいです。
「そういったこと」とは何を指してますか?
どれはともかく、回答を読んでもらったでしょうか? 読んで不明な点があれば、回答のコメント欄に書いてください。
あと、.net dispose などをキーワードにググると、cg 任せにするのは NG ということを書いた記事がいろいろヒットするので、読んでみることをお勧めします。
回答1件
あなたの回答
tips
プレビュー