最佳化記憶體密集型報告的效能
在報告產生期間,JasperReports 會將報告設計定義 (JRXML) 檔案編譯為 .jasper 檔案,然後會在 .jasper 檔案中填入資料。報告填入流程的輸出是 JasperPrint 物件形式的文件。此物件的每個實例都可以檢視、列印或匯出為 HTML、PDF、CSV 與 XLSX 格式。
建立 JasperPrint 物件時需要虛擬器。當處理大型資料集時,物件的大小可能會增加,進而增加記憶體消耗。為了避免觸發 Windchill 記憶體不足例外,您需要虛擬器。虛擬器會將 JasperPrint 物件分割成多個檔案,並在硬碟上儲存及壓縮這些檔案。
Windchill 支援下列虛擬器:
• JRFileVirtualizer:在磁碟上建立暫存檔。它會針對每個虛擬化頁產生一個暫存檔。
• JRSwapFileVirtualizer:建立用來儲存所有虛擬化頁的單一分頁檔。如有必要,可延伸檔案大小。
• JRGzipVirtualizer:預設虛擬器。不會建立用來儲存虛擬化頁的檔案。它將透過使用 Gzip 演算法壓縮 JasperPrint 物件來最佳化記憶體消耗。
可透過下列屬性啟用虛擬器的設定。此屬性可在 jasper-integration.properties.xconf 檔案 (位於 WT_HOME/codebase) 中進行配置。
• com.ptc.wbr.jasper.virtualizer.enabled:使 Jasper 虛擬器能夠支援 Windchill。預設值為 true。
• com.ptc.wbr.jasper.virtualizer:指定要使用的預設虛擬器。預設值為 JRGZIPVIRTUALIZER。
• com.ptc.wbr.jasper.virtualizer.cachedsize:指定要儲存在記憶體中的 JasperPrint 物件的頁數。預設值為 300。
• com.ptc.wbr.jasper.jrswapvirtualizer.blocksize:指定要透過分頁檔分配的區塊數。預設值為 4096。
• com.ptc.wbr.jasper.jrswapvirtualizer.mingrowcount:指定讓分頁檔在存滿後可進行增加的最少區塊數。預設值為 200。
• com.ptc.wbr.jasper.virtualizer.templocation:指定可保留暫時虛擬檔案的暫存位置。預設值為 {WT.TEMP}。