Did you try os.close() and wb.close() after your flush? On Sep 4, 2016 20:50, "Hongdi Ren" <ryan.hd....@gmail.com> wrote:
> Hi Javen, > > Per my understanding, before call Workbook.write, the XML nodes shouldn’t > be unreachable, the workbook should have strong reference to the nodes. Is > that right? > > Seems the attached picture isn’t working. Here’s our code. The output > stream is from servlet response. The valueList(rows) is about tens of > thousands. The nameList(column) is about 20. > > public static void export(OutputStream os, List<String> nameList, > List<List<String>> valueList) throws IOException{ > Workbook wb = new XSSFWorkbook(); > String safeSheetNameName = WorkbookUtil. > createSafeSheetName("sheet1"); > Sheet sheet = wb.createSheet(safeSheetNameName); > Row nameRow = sheet.createRow(0); > for (int i = 0; i < nameList.size(); i++) { > nameRow.createCell(i).setCellValue(nameList.get(i)); > } > for (int i = 1; i <= valueList.size(); i++) { > List<String> list = valueList.get(i - 1); > Row valueRow = sheet.createRow(i); > for (int j = 0; j < list.size(); j++) { > valueRow.createCell(j).setCellValue(list.get(j)); > } > } > wb.write(os); > os.flush(); > } > > On 9/5/16, 11:25 AM, "Javen O'Neal" <javenon...@gmail.com> wrote: > > Without more detail, my guess would be that your JVM has 2GB of XML > nodes. > Nothing is flushed to disk with XSSF until you call Workbook.write, and > nothing is cleared until Workbook.close. > > If you only need to create a workbook, the SXSSF streaming API is the > way > to go. > > On Sep 4, 2016 7:45 PM, "Hongdi Ren" <ryan.hd....@gmail.com> wrote: > > > Hi all, > > > > > > > > We’re using poi & poi-ooxml 3.14 generating tens of thousands of > rows to > > be downloaded. > > > > > > > > We have a problem that jvm keeps old gc 5 times/min but nothing > could be > > collected. What’s more, when we looked into the jvmdump, it has 2G > > unreachable objects closed related with poi. We have no idea why > that can’t > > be cleaned out. > > > > > > > > It might be better to use the stream api which we would try > recently, but > > is there any idea why could this happen? > > > > > > > > > > > > Attached detailed information: > > > > code > > > > > > > > And the jvmdump shows > > > > > > > > ------------------------------------------------------------ > --------- > > To unsubscribe, e-mail: user-unsubscr...@poi.apache.org > > For additional commands, e-mail: user-h...@poi.apache.org > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@poi.apache.org > For additional commands, e-mail: user-h...@poi.apache.org > >