반응형

 

 

Pdf2Image source를 적용하여 많은 page의 pdf file을 변환하다가 문제점이 발견되었다.

메모리가 소모가 지속적으로 증가하는 것이였다.

작은 page의 PDF file을 변환할 때는 메모리가 증가해도 그다지 문제가 되지 않았으나,

많은 page의 PDF file을 변환할 때는 1GB 이상으로 지속적으로 메모리 소모가 증가되었다.

 

그래서 소스를 확인하고 수정을 해 보았다.

여러번의 시행착오 끝에 아래와 같이 수정하니 메모리의 할당과 해제가 반복되면서 메모리의 증가 현상이 해결되었다.

 

ProcessPDF2Filesystem 함수의 내부에서 image를 얻는 부분과 파일로 image를 저장하는 부분을 아래와 같이 수정하였다.

 

GetPDFImage 함수를 호출하지 않고 그 내용을 그대로 가져와서 사용하고,

사용한 후의 image와 pdFiumBitmap을 Dispose 하여

메모리의 증가 현상을 해결하였다.

 

 

참고로 아래는 원래 호출하여 사용하던 GetPDFImage 함수의 내용이다. 

 

 

아래는 많은 pdf page의 데이터를 변환하는 과정에서의 메모리 변화이다.

 

 

아래는 약 3만 page의 변환을 끝내고 난 뒤의 메모리 상태이다. 

구세대 i5, 8GB RAM의 노트북에서 약 79분 걸렸다. ㅡ.ㅡ; 

 

 

이제 이 라이브러리를 어느 정도 사용할 수 있을 정도가 된 것 같다.

 

 

 

 

728x90
반응형

'공부 > C#' 카테고리의 다른 글

210202 C# Barcode reader project (1)  (0) 2021.02.10
210202 OpenCV PictureBoxlpl  (0) 2021.02.09
210126 Pdf2Image winform project (3)  (0) 2021.02.05
210125 Pdf2Image winform project (2)  (0) 2021.02.01
210124 Pdf2Image winform project (1)  (0) 2021.01.31

+ Recent posts