Extreme performance problems after second start of app

Hello together,

for some reason I got extreme few fps when I start my app the second time. While it is fine at the first start where I have around 700 FPS the second start is like 7 FPS :weary:

The thing is didn’t change anything, so I believe it has to do something with memory maybe?! When I wait a minute or so and start the application again it runs again with ~700 FPS :confused:

This is from my jmonkeyplatform.conf:
default_options="–branding jmonkeyplatform -J-Xms64m -J-Dsun.java2d.dpiaware=true -J-Dapple.laf.useScreenMenuBar=true -J-Dawt.useSystemAAFontSettings=lcd -J-Dswing.aatext=true -J-Xmx2048m -J-XX:MaxDirectMemorySize=2048m -J-Dsun.zip.disableMemoryMapping=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true"

I have no parameter set in VM options (in project properties).

App on a computer or android?

Computer with 8 GB of RAM

Try to look in Task Manager java or javaw. It could be obvious but usually it is major reason. Last copy of your app could survive in memory.
PS. You can try to test on my VM options. For my game it works as clocks.

Oh yeah, that would be great. I would test it!

-Xms128m -XX:MaxDirectMemorySize=1224m -Xmx4820m -XX:+UseFastAccessorMethods -XX:+AggressiveOpts -XX:+UseConcMarkSweepGC -XX:+UseNUMA -XX:+UseBiasedLocking -XX:NewRatio=100 -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:MaxHeapFreeRatio=90 -XX:MinHeapFreeRatio=20 -XX:+UseStringDeduplication

It uses CMS gc. Just in my case it usually save up to 30% of RAM. I have started making game when I had 32 bit system. So it was important for me. And even now it works good.


Works! Thank you :grinning:

I am glad it works

Hey, the problem occured again, but it is solved now!

You know, I am using Windows 10 and there is this XBOX app preinstalled. In this app there is a function which records game applications (like jME app) to show it later again what obviously takes a lot of (unnecessary) memory. Anyway, that process can be disabled and that is what I did. It is fine now!

(Btw. I got this information via TaskManager)