Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

JasperReports大量資料報表使用的虛擬化機制

$
0
0

使用JasperReports 5.6製作的報表因為資料量過大而出現近似Out of Memory的問題,研讀後發現原來JasperReports可以透過Virtualizers機制,將報表先寫到硬碟最終再組合成報表檔,從而降低記憶體的耗用。

比較完成的說明可以看Virtualizers in JasperReports | Jaspersoft Community,以下是簡單的範例。報表產生過程中,會在C:\temp產生SWAP檔。

JRSwapFileVirtualizer virtualizer = null;
try {
    JRSwapFile swapFile = new JRSwapFile("c:/temp", 1024, 100);
    virtualizer = new JRSwapFileVirtualizer(50, swapFile, true);
    params.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
    ...
    JasperPrinter printer = JasperFillManager.fillReport(report, params, dataSource);
    ...
}
finally {
    if (virtualizer != null) virtualizer.cleanup();
}

#

您可能也會有興趣的類似文章


Viewing all articles
Browse latest Browse all 897

Trending Articles