OutOfMemory

なんかよくわからないのだが、ランニングテストかけてたらOutOfMemoryErrorが出てしまう、というアプリがあって
なにがクセモノなのか jhat とかかけて調べよう、という段階なのですが、どうもあやしいのがOGNL。
実際には、S2を使っていて、diconの中で


  hoge.getFuga(request)

みたいな箇所があり、この abcというコンポーネントを大量にgetする(実際にはsetterのプロパティ名が
同じになっているのでauto-bindingされる)と、メモリリーク的にTenured Objectが増大し、しまいには100%になって
しまうというトラブル。

まだわからん。しかしS2がOGNL式のcomponentがrequestスコープのときにたまたま保持し続けるとは考えにくいし、
こうなるとOGNLを疑ってしまう。調査調査。


256mのhprofダンプ見るのに2GBぐらいの環境が必要だったけども、なんとかjhat起動。追いかけてみるとたしかにOGNLがらみのツリーが多いけども、なんか違うかも。七度自分のコードを疑ってから周辺ライブラリを疑うべし。