메모리 집약적 보고서의 성능 최적화
보고서 생성 중, JasperReports는 보고서 설계 정의(JRXML) 파일을 .jasper 파일로 컴파일한 다음 .jasper 파일에 데이터를 채웁니다. 보고서 채우기 프로세스의 출력은 JasperPrint 객체 형태의 문서입니다. 이 객체의 각 인스턴스는 HTML, PDF, CSV 및 Microsoft Excel과 같은 형식으로 보거나 인쇄하거나 내보낼 수 있습니다.
JasperPrint 객체를 작성할 때 가상화기가 필요합니다. 대용량 데이터 세트를 처리할 때 객체의 크기가 커지기 쉽고, 이 경우 메모리 소비량이 증가합니다. Windchill 메모리 부족 예외를 트리거하지 않도록 하려면 가상화기가 필요합니다. 가상화기는 JasperPrint 객체를 여러 파일로 분할하고 이러한 파일을 하드 드라이브에 저장하고 압축합니다.
Windchill은 다음 가상화기를 지원합니다.
JRFileVirtualizer: 디스크에 임시 파일을 생성합니다. 가상화된 페이지마다 하나의 임시 파일을 생성합니다.
JRSwapFileVirtualizer: 모든 가상화된 페이지가 저장되는 단일 스왑 파일을 생성합니다. 필요한 경우 파일 크기를 확장할 수 있습니다.
JRGzipVirtualizer: 기본 가상화기입니다. 가상화된 페이지를 저장할 파일을 생성하지 않습니다. Gzip 알고리즘을 사용하여 JasperPrint 객체를 압축하여 메모리 소비량을 최적화합니다.
가상화기에 대한 설정은 다음 등록 정보를 통해 활성화됩니다. 등록 정보는 WT_HOME/codebase에 있는 jasper-integration.properties.xconf 파일에 구성됩니다.
com.ptc.wbr.jasper.virtualizer.enabled: Windchill에 대한 Jasper 가상화기 지원을 활성화합니다. 기본값은 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}입니다.
* 
기본값을 변경하지 않는 것이 좋습니다.
도움이 되셨나요?