Slowness in Jboss after PPTX generation using Aspose.Slides for Java

Hi Aspose,

We have come across (for the last 8 months) a problem in connection to Aspose.Slides, that I hope you can help us out on.

Sometimes when generating PowerPoint files it leaves the application server (Jboss) much slower.
We have identified 100% to be connected to the generating of PowerPoint report (a PowerPoint file was always generated at the same time the application server becomes slow), but not always will a PowerPoint file trigger this.
Any task carried out afterwards (not only Aspose related) by the application server is 6-8 times slower. This means that e.g. generating of a PowerPoint file can take more than 20 minutes.

Restarting Jboss will make the application server fast again, until problem occurs again.

In some situations Jboss can run without any slowness for weeks without this problem occurs (even though PowerPoint files are made), and in this situation the problem seem not possible to reproduce (until JBoss is restarted). Sometimes the slowness happens shortly (few hours) after restart.

We currently use Aspose.Slides 8.4.0. With version 7.4.0 we also had the slowness problem. But not with version 2.9.3.
We make the PPTX presentations using com.aspose.slides.PresentationEx (notcom.aspose.slides.Presentation).
We use JBoss AS 7.1.1 as application server


Have you any ideas what could be causing this?

Best regards,
Lauge<!–[if gte mso 9]>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>DA</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val=“Cambria Math”/>
<m:brkBin m:val=“before”/>
<m:brkBinSub m:val="–"/>
<m:smallFrac m:val=“off”/>
<m:dispDef/>
<m:lMargin m:val=“0”/>
<m:rMargin m:val=“0”/>
<m:defJc m:val=“centerGroup”/>
<m:wrapIndent m:val=“1440”/>
<m:intLim m:val=“subSup”/>
<m:naryLim m:val=“undOvr”/>
</m:mathPr></w:WordDocument>
<![endif]–><!–[if gte mso 10]>

/* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";}

<![endif]–>

Hi Lauge,


Thanks for inquiring Aspose.Slides.

I have observed the observations shared by you and agree with your point of view that there are performance differences between legacy Aspose.Slides for Java 2.x.x series and latest Aspose.Slides for Java 8.x.x series. Actually, the versions are separate products internally. The new 8.x series is actually build by auto porting from latest Aspose.Slides for .NET version. This gives the product many additional and stable features support as compare to old legacy API but incur some performance related issues. We are working in direction of improving the performance of new API as well and it will be gradually improved.

I request you to please share the sample projects using old and new API along with sample presentations. Please also share the machine, operating system, Jboss and java details as well on your end along with performance specifications achieved by using both API versions. I will investigate and add the ticket as performance in our issue tracking system so that we may share the information with you once the performance will be improved. I also like to add further that we are also trying to improve performance in every new upcoming version of Aspose.Slides for Java.

Many Thanks,

Hi Mudassir,



Thanks for your prompt feedback.



I will see what I can get of code, if needed. But here is the system specs:

Machine: Intel Xeon E5420 @ 2.50 GHz (2 procesessors, 8 cores), 32 GB RAM,

OS: Windows Server 2008 Enterprice 64 bit, with SP2

Application server: Jboss AS 7.1.1

Java: JDK 1.7.0_09



The strange thing is that the system seems slow even after powerpoint files is generated. And it slows down the rest of the application (no only Aspose related stuff).



Note that even if the exact same file is generated at a later time, it will not neccacarily cause the slowness next time. And the powerpoint report could be generated rather fast (less than a minute which is okay for now).



In general we do not see a big problem with performance for PowerPoint reports generated by Aspose.Slides.



Only sometimes it triggers something that really slows the whole Application server down (I can see java.exe is using 100% CPU power in one CPU core). It does not use 100% all the time when in this “slow mode”, but it easier reaches the 100%.



Have you heard of similar problems from other clients previously?



Best regards,

Lauge

Hi Lauge,

Thank you for sharing the machine and environment details.

I have observed your following comments.

[quote user=“laugew”]The strange thing is that the system seems slow even after powerpoint files is generated. And it slows down the rest of the application (no only Aspose related stuff)."
[/quote]

This needs to be investigated on your end that why the rest of applications with no Aspose related stuff are getting slower on your end. If this slowness is related to Aspose then we may need all necessary information and sample data to reproduce and verify on our end from you.

I have also read your further comments where you have specified that the behavior is random and same presentation works perfectly fine at one instance and face the performance issue on some other moments. Unfortunately, I have not encountered such scenario before from our any customers. Please share the working example set with us that we configure and test on our end to reproduce the same and help you further in this regard.

Many Thanks,

Hi,



We are experimenting with different compiler settings now. It seems that replacing the paramter:

“-XX:+TieredCompilation”

with:

“-server”

helps a lot (we are still testing it, so performance result is not final).



Before:

JAVA_OPTS: -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xrs -Xms8g -Xmx24g -XX:MaxPermSize=4g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -XX:+UseParallelOldGC -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n



Now:

JAVA_OPTS: -server -Dprogram.name=standalone.bat -Xrs -Xms8g -Xmx24g -XX:MaxPermSize=4g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -XX:+UseParallelOldGC -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n



I will get back to you with further details.

Hi Lauge,

Thanks for your feedback and it is good to now that results are improving on your end by altering the compiler settings. As you have shared that you are still performing testing on your end, so please carry on with that. If there is any issue then please share the all requested piece of information with us that me use on our end and reproduce the issue.

Many Thanks,

Hi Mudassir,



Performance keeps on being great here.



The problem was definitely related to Tiered Compilation being enabled.



Hopefully this post will help others in similar situation.



Cheers,

Lauge

Hi Lauge,

This is really a good news that things have been improved on your. Certainly, your experience will be helpful to others. Please share, if I may help you further in this regard.

Many Thanks,