java2d游戏Linux

java2d游戏Linux,java,linux,frame-rate,Java,Linux,Frame Rate,我正在用java开发一个2D游戏。我们的团队通常在Windows和Mac平台上开发。 游戏期间没有出现任何问题,我们的帧速率为60帧/秒 昨天我们在Linux计算机上运行了我们的游戏,帧速率仅为每秒10帧左右 有人听过这样的话吗?在Linux上运行Java游戏有问题吗? 在Linux上保持良好的帧速率 我不知道应该向您展示哪些代码行(目前超过12000行),以便您理解我的问题。 但我会尝试解释一下我们的概念,这样也许你知道一个解决方案,或者你可以给我们一个提示:) 我们构建了一个Content

我正在用java开发一个2D游戏。我们的团队通常在Windows和Mac平台上开发。 游戏期间没有出现任何问题,我们的帧速率为60帧/秒

昨天我们在Linux计算机上运行了我们的游戏,帧速率仅为每秒10帧左右

有人听过这样的话吗?在Linux上运行Java游戏有问题吗? 在Linux上保持良好的帧速率

我不知道应该向您展示哪些代码行(目前超过12000行),以便您理解我的问题。 但我会尝试解释一下我们的概念,这样也许你知道一个解决方案,或者你可以给我们一个提示:)

我们构建了一个Content Manager服务,它加载并保存应该在JFrame上绘制的图像。我们通常使用png格式的图像

非常简短的摘录:

//Load our images which are later drawn on the Frame
URL url = this.getClass().getClassLoader().getResource( the right image Path);
this.image = ImageIO.read(url);

//extract of draw
this.graphicsDevice.getGraphics().drawImage(ourImage, x , y , null);
我们同时有大约25幅不同的图像,它们直接绘制在JFrame的图形设备上

我对Linux没有任何经验,这就是为什么我不能理解糟糕帧速率的来源。(请记住,在windows和mac PC上,它是恒定的62 fps,代码相同:()

如果有人需要更多的信息来帮助,我会尽量补充一些

谢谢你的阅读

致意
FireDragon

我怀疑您在绘制过程中没有包含Linux缓冲。
尝试在绘制方法中添加Toolkit.getDefaultToolkit().sync();祝您好运。

我怀疑您在绘制过程中没有包含Linux缓冲。
尝试在绘制方法中添加Toolkit.getDefaultToolkit().sync();祝您好运。

在这两种方法中分析代码,以便查看是否有一个特定区域导致了问题


另外,如果Linux机器运行在速度慢得多的硬件上,那么请比较这两台机器的规格,这可能是您的问题。

在这两台机器上分析您的代码,以便查看是否有一个特定区域导致了问题


此外,如果Linux机器运行在速度慢得多的硬件上,请比较这两台机器的规格,这可能是您的问题。

我会询问遇到此类问题的用户正在运行哪个版本的X、视频卡驱动程序和jre,以及是否启用了合成

在升级到更新版本的openjre后,同一应用程序的RAM/CPU使用量急剧增加

没有Linux机器这样的东西,有些机器(AMD | nVidia | Intel)视频卡运行(最新的|过时的)(专有的|免费的)驱动程序和(KDE | Gnome |什么的)和(openjre | sunjre),每种软件/硬件组合都会显示不同的结果


我会尝试在AMD和nVidia机器上测试一个应用程序,使用专有和免费的驱动程序,以及openjre和sunjre,以了解是什么导致fps低。

我会询问遇到此类问题的用户,他正在运行哪个版本的X、视频卡驱动程序和jre,以及是否启用了合成

在升级到更新版本的openjre后,同一应用程序的RAM/CPU使用量急剧增加

没有Linux机器这样的东西,有些机器(AMD | nVidia | Intel)视频卡运行(最新的|过时的)(专有的|免费的)驱动程序和(KDE | Gnome |什么的)和(openjre | sunjre),每种软件/硬件组合都会显示不同的结果


我会尝试在AMD和nVidia机器上测试一个应用程序,使用专有和免费的驱动程序,以及openjre和sunjre,以了解导致fps低的原因。

系统上是否有实际的JVM?您确定使用了这个JVM,而不是一些旧的实现吗?您的测试机器的图形卡在Linux上的支持情况如何?您可能正在将帧速率与可以使用硬件加速/适当的OpenGL驱动程序的Windows或Mac进行比较…系统上是否有实际的JVM?您确定使用了此JVM而不是一些旧的实现吗?Linux上对测试机器的图形卡的支持程度如何?您可能正在将帧速率与Windows或Mac进行比较这可以使用硬件加速/适当的OpenGL驱动程序…谢谢你的回答,昨天晚上我们找到了问题的根源。我们使用的是透明图像,这导致了麻烦。我的一个朋友就我们的新问题提出了一个新的话题:我相信WeGi的答案对你更有用,因为它更特定于语言,而我的nswer只是一个关于在Linux中测试/排除应用程序故障的琐碎信息。感谢您的回答,昨天晚上我们找到了问题的根源。我们使用的是透明图像,这导致了问题。我的一位朋友就我们的新问题提出了一个新话题:我相信WeGi的答案对您更有用处,因为它更适合于语言具体地说,我的回答只是关于在Linux中测试/排除应用程序故障的一个小信息。感谢你的回答,昨天晚上我们找到了问题的根源。我们使用的是透明图像,这导致了问题。我的一个朋友就我们的新问题提出了一个新话题:谢谢你的回答,昨天晚上我们找到了问题的根源问题的根源。我们使用的是导致问题的透明图像。我的一位朋友用我们的新问题提出了一个新主题:谢谢你的回答,昨天晚上我们找到了问题的根源。我们使用的是导致问题的透明图像。我的一位朋友用我们的新问题提出了一个新主题:谢谢你的回答,昨天晚上,我们找到了问题的根源。我们使用的是透明图像,这导致了麻烦。我的一位朋友用我们的新问题提出了一个新话题: