簡體   English   中英

Web應用程序中的Java內存管理

[英]Java Memory Management in web application

我們有一個網絡應用程序,該應用程序從JSP執行查詢,並將結果集以ArrayList<TreeMap<ColumnName, Value(String)>>的形式存儲到Collection中。 它在應用程序中沒有分頁。 當用戶搜索更多記錄時,需要花費更多時間來加載頁面。 如果多個用戶進行相同類型的搜索,我們將出現內存不足錯誤。 當我們檢查檢索數據的時間時,使用結果集形成收集對象所花費的時間更少,對於50k記錄而言,這大約需要10秒。 但是將數據呈現到頁面中大約需要5分鍾。 有時會進入不響應狀態。

我的問題是,當用於存儲結果集數據的收集對象將被釋放以進行垃圾收集時。 頁面完成數據的頁面渲染之后是什么? 如果沒有,那么什么時候才能釋放出來?

我的問題是,當用於存儲結果集數據的收集對象將被釋放以進行垃圾收集時。 頁面完成頁面數據讀取后,是什么? 如果沒有,那么什么時候才能釋放出來?

提交響應后,日期結構就開始可以用於GC。作為從Servlet提交響應的一部分,JSP會迭代集合並將其呈現為HTML響應。當響應提交完成時(HTML將從適當的JSP),它可用於垃圾回收。 當它被釋放時,只有GC知道,但是在從JSP渲染HTML之后它才有資格(作為響應提交的一部分)

我假設來自SQL查詢執行的ResultSet未被其他地方引用。如果是,則必須顯式地將其設置為null,以告知JVM它符合垃圾收集的條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM