我有一个运行jMonkey Engine的java项目。在我的普通笔记本电脑上(不是最好的笔记本电脑)我的项目运行良好。但在我的高端游戏PC(GeForce GTX 970,Intel i5-6600K @ 3.50 GHz,16 GB RAM)上,该程序滞后。就像每2秒一样,我的发动机只会冻结几毫秒,造成巨大的滞后。 我正在使用这个java(最近更新它,看看是否会解决它)
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
答案 0 :(得分:2)
根据您的描述,很难回答这个问题。您可能想尝试JME论坛,其中可能有比此更多的讨论和故障排除方法。
我唯一能想到的就是解释你所看到的是你正在产生大量的垃圾。在具有更多内存的PC上,它可以累积大量垃圾,然后长时间暂停以收集所有内容。在较低规格的PC上,它被迫更频繁地运行GC,这意味着GC停顿太小而无法注意到。
引擎经过精心编写,一般不会产生太多垃圾,所以你应该看看每帧产生的是什么。尝试附加一个Profiler(JDK提供了一些不错的,比如jConsole),并查看是否有一个大的GC链接到暂停。