[Seasar-user:13234] Re: [Teeda] @PageScope を使用すると OutOfMemoryError

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 3月 11日 (火) 19:22:43 JST


うちまです。 小林 (koichik) さんレスありがとうございます。

下記の件、理解出来ました。java.util.HashMap を使用する方向で検討します。

ありがとうございました。

> ページクラスの中で commons collections の
> HashedMap が使われていますが,これが HOT deploy と
> 相性が悪いようです.
>
> HashedMap を java.util.HashMap に置き換えると
> OOME は発生しなくなります.
>
> HOT deploy では,前のリクエストにおける
> HotdeployClassLoader でロードされたクラスの
> インスタンスを,新しいリクエストにおける
> HotdeployClassLoader でロードされたクラスの
> インスタンスに置き換えるために,バイト配列に
> シリアライズ〜デシリアライズするという操作を
> 行っています.
>
> 詳細には調べてませんが,commons collections の
> HashedMap はデシリアライズの際 (?) にバケットの
> サイズを倍々に増やしていくようです.
> そのため,20 回近くアクセスするとバケットのサイズが
> 数十 MB に達してしまい,OOME となります.
>
> どうしても commons collectins を使わなくては
> ならない理由があるのでしょうか?
> もしないなら java.util のコレクションを使うことを
> オススメします.
>
>
> --
> <component name="koichik">
>     <property name="fullName">"Koichi Kobayashi"</property>
>     <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>     <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>




Seasar-user メーリングリストの案内