View Source

An Adobe PDF file consists of numerous compressed streams. As a PDF file is opened and additional pages are viewed, more streams are decompressed, and the memory required to display the content can grow significantly.

All loaded PDF objects are stored in the Documents Library and are accessible via a ConcurrentHashMap<Reference, SoftReference<Object>> structures. The memory management is handle by the JDK Soft and Weak Reference implementations. This approach will insure that Objects will be released for Garbage collection in a timely efficient fashion.

If garbage collection is slowing UI responsiveness then it is recommend ICEpdf Viewer RI be run with the system property -XX:+UseConcMarkSweepGC. This garbage collection algorithm seems to improve ICEpdf's responsiveness when working with larger files.

There are some PDF documents which require a larger then normal amount of JVM memory. Large memory requirements are generally always related to large embedded images. In such a circumstance is is recommended that the JVM is given more memory by using the the system property -Xmx###m where ### represents the amount of memory in MegaBytes to assigned to the JVM.

{info}For more information on the ICEpdf system properties, see {color:#004ca5}*[System Properties]*{color}.