1. 程式人生 > >itext匯出報表防止記憶體溢位

itext匯出報表防止記憶體溢位

int _MAX_ROWS = 1000;//最大行數,之後清理
int row_count = 0;//初始值
if (++row_count % _MAX_ROWS == 0) {
 
            System.out.println("row_count % _MAX_ROWS="+ row_count % _MAX_ROWS);
 


            // add table to Document
             document.add(datatable);
 


            // delete _MAX_ROWS from table to free memory
             datatable.deleteBodyRows();
 


           // let iText manage when table header written
 
           //datatable.setSkipFirstHeader(true);    
}


int fregmentSize = 1000;// 釋放記憶體的行號
  int k = 0;
 
  for (int i = 0, h = bodys.size(); i < h; i++) {
 
     if (i != 0 && i % fregmentSize == fregmentSize - 1) {
 
            System.out.println("第[ " + (i + 1) + " ]行進行記憶體釋放 " + ((k++) + 1) + " th");
 
            document.add(datatable);
 
            datatable.deleteBodyRows();
 
            datatable.setSkipFirstHeader(true);
 
      }


       //.... 表格處理
}