我正在尋找設計最佳實踐來實現以下應用程序。 平臺:RedHat Linux,Tomcat 8,Java 8.最終,這將被移至JBOSS應用服務器。Servlet長數據緩存過程
我的servlet在啓動時會從10個大文件中讀取數據,並構建一個用於回答用戶查詢的數據結構。它大約需要。 2分鐘,在數據結構準備好之前總共20分鐘加載每個文件。
目前我有一個ServletContextListener中的代碼,並使用setAttribute()方法將數據結構放置到Servlet中。
問題:當我上傳我的war文件時,servlet在加載文件集20分鐘之前不可用。我不介意這一點,但我想知道是否有更好的方法來實現這一點。
這些文件有多大?你可以用'BufferedReader.readLine()'來讀取數百萬行。爲什麼閱讀它們需要很長時間? – EJP
我們使用BufferedReader - 我們的文件每個都有超過30M行。 – RVT
@EJP - 我們發現讀取文件似乎不是延遲的原因。它很快讀取文件 - 它的內存分配(-Xmx80G-Xms80G)似乎是問題所在。我們必須請求Java分配一個大內存來處理我們的數據結構。 – RVT