• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サーブレットコンテナのメモリ解放について)

サーブレットコンテナのメモリ解放について

このQ&Aのポイント
  • サーブレットコンテナ上のメモリ解放について調査します。
  • サーブレットコンテナの動作フローとメモリ解放に関する疑問を解決します。
  • Java特有のガベージコレクションとサーブレットのメモリ解放について考えます。

質問者が選んだベストアンサー

  • ベストアンサー
  • OKapple
  • ベストアンサー率56% (17/30)
回答No.3

サーブレット自体のアンロードは、明示的にサーブレットをシャットダウンしたとき以外は行われません。 基本的に、サーバが生きてる限りずーっとオンメモリです。 リクエスト/レスポンスのラッパーオブジェクトは基本的には(サーブレットでブールするような仕組みで作らない限り)破棄されると思います。 オブジェクトの破棄は、Javaの仕様通りにGCが行います。

uzo3839
質問者

お礼

なるほどです。 すみません、1点だけ >明示的にサーブレットをシャットダウンしたとき以外は行われません。 これはサーバをではなく、サーブレットをなのでしょうか、、 次の文を拝読するとサーバをとも読み取れるのですが、、 やはり1リクエストにしか使われず、使い終わったら破棄すべきオブジェクトとなりそれをGCするという形なのですね。 ご回答誠にありがとうございました。m(._.)m

その他の回答 (3)

  • OKapple
  • ベストアンサー率56% (17/30)
回答No.4

>これはサーバをではなく、サーブレットをなのでしょうか、、 >次の文を拝読するとサーバをとも読み取れるのですが、、 正確には ・サーバは生きたままサーブレットを落とすことはできる。 ・サーバが死んだ場合サーブレットは落ちる。 です。 前者はサーブレットを更新したような場合です。 メモリ上のサーブレットは破棄されて、次にリクエストがあったときに(更新された)サーブレットが展開されます。

  • thamansa
  • ベストアンサー率40% (95/232)
回答No.2

推測ですが、オブジェクトをGCが動くまで放っておくコストと、オブジェクトプーリングしておくコストを考えるとおそらく前者、つまりRequestとResponseは使い捨てだと思います。

uzo3839
質問者

お礼

そうですね。たしかに放っておくメリットもありませんし。。 ご回答誠にありがとうございました。m(._.)m

  • suzu_zou
  • ベストアンサー率34% (112/327)
回答No.1

メモリ開放が行われるのはGCが走るとき、でしょうね。 以前勤めてたところで、非常に大規模なシステムがあって、 そこではGCが起こるまではメモリに残っているという説明でした。 (私は直接関与してなかったので詳細はわからないですが)

uzo3839
質問者

お礼

なるほどです。 となると大規模となればなるほどメモリ消費が心配になるところです。 ご回答誠にありがとうございました。m(._.)m

関連するQ&A