我使用字符串緩衝區和字節數組創建兩個CSV文件。
我使用ZipOutputStream
來生成zip文件。每個csv文件將有14個列的20K記錄。實際上記錄是從數據庫中提取並存儲在ArrayList
中。我必須迭代列表並構建StringBuffer
並將StringBuffer
轉換爲byte數組以將其註冊到zip條目。JVM用於創建CSV文件並對其進行壓縮的內存
我想知道 JVM需要的內存做了整個過程,從存儲ArrayList
中的記錄開始。
我已經提供了下面的代碼片段。
StringBuffer responseBuffer = new StringBuffer();
String response = new String();
response = "Hello, sdksad, sfksdfjk, World, Date, ask, askdl, sdkldfkl, skldkl, sdfklklgf, sdlksldklk, dfkjsk, dsfjksj, dsjfkj, sdfjkdsfj\n";
for(int i=0;i<20000;i++){
responseBuffer.append(response);
}
response = responseBuffer.toString();
byte[] responseArray = response.getBytes();
res.setContentType("application/zip");
ZipOutputStream zout = new ZipOutputStream(res.getOutputStream());
ZipEntry parentEntry = new ZipEntry("parent.csv");
zout.putNextEntry(parentEntry);
zout.write(responseArray);
zout.closeEntry();
ZipEntry childEntry = new ZipEntry("child.csv");
zout.putNextEntry(childEntry);
zout.write(responseArray);
zout.closeEntry();
zout.close();
請幫我這個。提前致謝。
做這個操作時你遇到了'OutOfMemoryError'嗎? –
將其增加到一個龐大的數字,然後運行應用程序並監視到底分配了什麼 – Randy
該應用程序將用於許多用戶。當多個用戶訪問應用程序時,我期待OutOfMemoryError。所以我想知道每個用戶的大約內存使用情況。 – Rumesh