私はTomcatベースのサーブレットを持っています。サーブレットには、アノテーション クラスに基づく mvc があり、次のようになります (疑似コード)
@RequestMapping("/myAction")
public String getAction(Model m) {
DBConnection conn = new DBConnection();//connect to DB
Result r = conn.getDataOfAction();//run some sql query and return result
ArrayList<POJO> list = r.getResult();//24 instances of class, for example
m.put("list",list); //It's for resolving pojo into JSP page
String result = CustomViewResolver.getString(viewName, list);//i just point to ViewName and get parsed jsp page
//list.clear();
return result;
}
そのままコメントでプロファイリングを開始すると//list.clear()
。POJO
ページがクライアント側で既にレンダリングされた後でも、すべてがメモリに残る状況があります。forEach タグを指すものを除いて//list.clear()
、すべてのガベージが収集されたときにコメントを解除すると。POJO
jstl
Stream's
私はすべてをフラッシュして閉じましWriter's
たが、問題はないようです。それは通常の方法でリストをクリアしますか、それとも何か間違っていますか? ありがとう。
UPD:使用するときに他の状況を試しますjstl
<c:forEach items=${POJOLIST} var="pojo"></c:forEach>
すべてpojo's
記憶に残ります。しかし、を使用せずに印刷すると${POJOLIST}
、すべての pojo ガベージが好きなように収集されます。のオブジェクトを再作成してメモリに保持しますか?jsp
jstl
jstl
var