Оптимизация производительности отчетов с высоким потреблением памяти
Во время создания отчета JasperReports компилирует файл определения дизайна отчета (JRXML) в файл .jasper, а затем заполняет данные в файле .jasper. Результатом процесса заполнения отчета является документ в виде объекта JasperPrint. Каждый экземпляр этого объекта можно просматривать, печатать или экспортировать в такие форматы, как HTML, PDF, CSV и Microsoft Excel.
Для создании объекта JasperPrint необходим виртуализатор. При работе с большим набором данных размер объекта может расти, что приводит к увеличению потребления памяти. Чтобы избежать инициирования исключения нехватки памяти Windchill, требуется виртуализатор. Виртуализатор разделяет объект JasperPrint на несколько файлов и сохраняет эти файлы на жестком диске со сжатием.
Windchill поддерживает следующие виртуализаторы:
JRFileVirtualizer - создает временные файлы на диске. При этом создается один временный файл на каждую виртуализированную страницу.
JRSwapFileVirtualizer - создает один файл подкачки, в котором сохраняются все виртуализированные страницы. При необходимости размер файла может увеличиваться.
JRGzipVirtualizer - виртуализатор по умолчанию. Не создает файлы для сохранения виртуализированных страниц. Потребление памяти оптимизируется путем сжатия объекта JasperPrint с помощью алгоритма Gzip.
Настройки для виртуализатора включаются с помощью следующих свойств. Свойства задаются в файле 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}.
* 
PTC рекомендует не изменять значения по умолчанию.
Было ли это полезно?