JAVA 2D Game Linux糟糕的FrameRate

时间:2011-06-08 11:56:00

标签: java linux frame-rate

我正在用java开发2D游戏。我们的小组通常在Windows和Mac平台上开发。 在游戏过程中不会出现任何问题,我们的帧速率为60 fps

昨天我们在Linux计算机上运行游戏,帧率每秒只有10帧

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

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

我们构建一个内容管理器服务,它加载并保存我们应该在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

3 个答案:

答案 0 :(得分:1)

我怀疑,在绘画过程中你没有包含Linux-Buffering。 尝试添加Toolkit.getDefaultToolkit()。sync();在你的paint-Method中。祝你好运。

答案 1 :(得分:1)

在两者上配置代码,以便您可以查看某个特定区域是否导致问题。

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

答案 2 :(得分:1)

我会问用户遇到这样的问题,他正在运行哪个版本的X,视频卡驱动程序和jre,以及是否打开了合成。

在更新到更新版本的openjre后,我使用相同的应用程序大幅增加了RAM / CPU使用率。

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

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