I have changed an old computer to a recent one.
My current developing game worked good on that old computer: around 40 FPS.
I expected it to run better on that new computer, or at least similar.
But it’s way worse: performance has now dropped to around 15 FPS.
I don’t understand how it’s possible : the new computer have a way better GPU, CPU and more RAM than the old one.
Is there a known issue with new computers and performance ?
Here are the first lines when i run the project, with GPU’s information:
I go with JVisualVM all the time. Super simple and doesn’t matter what IDE is used. JVisualVM is not bundled with JDK anymore but a separate download. Still easy to get.
Did you try different JRE ? openJDK temur orical ,version 11, 17, 21, 8 ?
The Da capo benchmark suit may help you to test performances in different CPUs.
Which cycle stage cause the latency ?
the Update() loop or the GL rendering loop?
3 .LWJGL 2.9 and Driver version = null ? seems troubling
INFOS: LWJGL 2.9.5 context running on thread jME3 Main
Driver Version: null
Hello, sorry for my lack of responses, i started again the old computer to do test the game in it again, and also to check the specs, so here are the stats:
New PC:
CPU: 13th Gen Intel(R) Core™ i7-13700KF 3.40 GHz
RAM: 32 GB
OS: Windows 11
GPU: NVIDIA GeForce RTX 4070
Performance: ~15FPS
Old PC:
CPU: Intel(R) Core™ i5-6400 CPU @ 2.70GHz 2.71 GHz
RAM: 16,0 Go
OS: Windows 10
GPU: NVIDIA GeForce GTX 750 Ti
Performance: ~40FPS
I have updated the Nvidia driver on the new PC and switched to LWJGL, it didn’t change anything.
I didn’t had time yet to try another JRE nor doing fine profiling.
But i think it the GL rendering which is causing the latency in both case: when i look away from the place where most detailed models are, FPS is better, it even reach the 60 cap in the old PC.
So i know that i need to optimize the models and i plan to do it, but i also try to understand why a better computer is showing worse than half the performance of the old one.
When you are looking towards the most detailed models or whatever… take a screen shot with the JME standard stats HUD enabled. (The one that shows object counts, FPS, etc.)
I don’t remember if it’s on by default but F5 or F6 will turn on the basic profiling and it will tell you where each frame is spending its time. (You can also add the more advanced profiler for more detail.)
Based on your stats, I’m going to guess that you are CPU bound in update() and that the GPU is not even working very hard. At a guess, I’m going to say physics is taking a lot of time per frame.
…hard to say for sure, though, without some profiling.
Well i tried F5 and F6, it just toggle off the bottom left menu.
But you were right: it was the physics which was provoking the down of performance, especially church’s one, as shown here:
I use a “simplified” version of church’s model for collisions, but it’s way not enough: i’ll remove all ceiling curves and others almost-useless part of it to have a simpler collision model.
So my problem here is kinda “fixed”, but i still don’t understand why the new computer take it harder than old one.
When the GPU and the CPU are fighting, it’s hard to predict how things will go sometimes.
…anything below 60 FPS is of concern, especially at this early stage of the game.
Put vsync on and try not to drop below the refresh rate of your monitor… optimize your update loops to be way less than the frame rate on average. Let the GPU do it’s thing.