Hosts Becoming Stale Due to Internal Design of Aspose.Slides Library

We are seeing our hosts which generates the presentations using Aspose library are going stale(we are currently using Aspose slides for Java 17.7 version), and upon investigation our Java team said that this is due to Aspose library. Below is their response.

Full heap dump also showed very worrisome signal (screenshot). Apparently Aspose library your team uses in this app relies on finalizable objects for some reason. That is very bad design choice (Asposes’s choice, not your team’s) for Java applications, since it could easily create unmanageable bottlenecks in memory allocation and garbage collection. The problem with finalizable objects is their lifecycle. When this object becomes garbage, it could not be collected immediately, instead GC adds it to a special queue, and there is a separate single JVM thread (finalizer), which processes these objects. While it does not directly affect latency of the application, spikes of allocation of finalizable objects could easily clog memory and causes OOMs, very long GC pauses, etc.

I wonder if this is changed in the newer version of Aspose, if not is there a plan to change this so that the performance will significantly improve.

@anilgudla

Can you please provide more details about the specific performance issues you are experiencing with the Aspose.Slides library and any error messages you have encountered?

@anilgudla,
We have opened the following new ticket(s) in our internal issue tracking system and will consider your questions according to the terms mentioned in Free Support Policies.

Issue ID(s): SLIDESJAVA-39610

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

@anilgudla,
Our developers have looked into the issue. Over the years, we’ve improved the performance of Aspose.Slides for Java for drawing, calculations, working with charts, etc. We have solved several issues when working with memory. It’s hard to say for sure whether anything has improved for you since there is no data that you use. Could you please share a test project?