Architectural Requirements

Hi!

we are using Aspose.Slides for Java 18.7 to:

  1. Split pptx files in to single slide pptx files --> using Slide.clone()
  2. Merge pptx files --> using Slide.clone()
  3. Convert pptx files with only one slide to PDF (—> using save()) and JPEG (—> using getThumbnail())

Our code is running correctly. However, as we are dealing with very large pptx files(up to 80MB and 600 Slides) we are often experiencing Heap Error Issues.

Based on this information, could you provide us with some experience values on what architectural setup is needed for this use case?
Currently we are running the service on a Payara Glassfish server with 2GB RAM and 4GB Heap space.

Thank you very much for your support and best regards,

Paul

@pauirinckens,

I have observed your following comments:

You are using fairly large presentation files and need to increase the Java Heap size for dealing with such large presentation files to avoid Heap errors.

@mudassir.fayyaz,

Thank you for your quick response! We already upgraded the Java heap size from 1GB to 4GB. The upgrade involves a rather complicated process in our system. What amount of heap would you recommend to be on the safe side?

Best regards,

Paul

@paulrinckens,

The amount of heap size depends upon how much big presentation you are trying to work with on your end. There is no safe side bench marking for this.

@mudassir.fayyaz,

do you have any experience value on what would be a good starting point in terms of heap size? Or what would be a typical heap size for the above mentioned requirements?

We already tried to limit used heap size by LoadOptions and allowTempFiles and BlobManagementOptions but were not successful - Heap is still overflowing.

Thanks again for you support, best regards, Paul

@paulrinckens,

I like to share that memory requirement for loading the presentation in memory depends on size of presentation, number of slides and shapes inside slides. It also depends on content insides slides especially multimedia content. So, it varies from presentation to presentation and one may not suggest any fix heap size. Generally, a 4 GB heap size is suggested for normal or above normal sized presentations. However, for huge presentations the requirements varies as per presentations.

@mudassir.fayyaz

Ok, I see. Thank you for the detailed explanation!
Conducting some heap analysis on our servers, I discovered, that even though an operation has been processed successfully, Java heap space does not return to it’s initial size it had before the operation.
By operation I mean the opening of some pptx files with Aspose, some processing on these files and saving them.
Can you supply us with any information regarding the clearing of Aspose objects from memory after processing? What happens in the case of an exception during the processing of presentations with Aspose?
It feels as the Java GC is very busy even long after all Aspose objects were used and Memory is still used by Aspose objects.

Best regards, Paul

@paulrinckens,

You can try consider using dispose the Presentation object once you are done with working of Presentation. This shall free to memory.