- - PR -
セッション変数について。超・初歩的ですがお願いします。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-02-28 16:28
ASP.NET(VB)で開発をしております。
セッション変数を宣言し、使った後の開放方法について。 Session("TEST") = nothing だけだとメモリが開放されないのでしょうか? Session.Remove("TEST") とすればメモリが開放されるのでしょか?どちらか正しいのでしょうか? 両方列挙する場合には順序的には Session("TEST") = nothing Session.Remove("TEST") とすればよいのでしょうか? どうか宜しくお願い致します。m(_ _)m |
|
投稿日時: 2005-02-28 18:02
普通、メモリの解放はガベージコレクタに任せます。
どうしてもすぐにメモリを解放する必要があるならば、Nothingをセットして GC.Collectを呼びます。(これはSessionに限った話ではありません) が、必ずしも解放されるわけではありません。 ガベージコレクションの詳しい動作は、MSDN等を調べてみてください。 気になるならば、GC.GetTotalMemoryを呼び出して調べてみてください。 [ メッセージ編集済み 編集者: kanai 編集日時 2005-02-28 18:12 ] |
|
投稿日時: 2005-02-28 18:14
Session変数を使った状態の保持はクライアントのcookieを使っています。
ですので、特定のSession変数を破棄するにはRemoveのみでよいと思います。 また、Session自体を破棄する場合はSession.Abandon()メソッドがあります。 |
|
投稿日時: 2005-03-01 09:12
クライアントのCookieが利用されるのはSessionIDの保持のみで、
実データはサーバー側(インプロセス、State Server、SQL Server)に あるのでは?? http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconsessionstate.asp [ メッセージ編集済み 編集者: kanai 編集日時 2005-03-01 09:14 ] |
|
投稿日時: 2005-03-01 10:22
kanai 様
Vacant-Eyes 様 返答ありがとうございます。m(_ _)m GC.Collectについて調べました。 ↓ http://www.atmarkit.co.jp/fdotnet/dotnettips/021gc/gc.html 通常は使用しなくなったメモリ領域は勝手に開放されていく様でした。 すぐに開放!という仕様でもないので、Removeだけさせる処理にしようと思います。 とても勉強になり、本当にありがとうございました。m(_ _)m |
1