我在Windows上用Java设计了一个纸牌游戏。它在我的笔记本电脑和其他几台电脑上运行得很好,但在许多其他系统(包括Mac和Windows在内的一些较新的系统)上,动画速度非常慢。
到目前为止,我发现面向Java的用户界面工具包是最好的资源,但是还没有取得显著的改进。我正在使用AWT/Swing库。
问题:
看看我的游戏,(<1.5Mb),为什么在某些计算机(类似规格的计算机上)的性能似乎比我的笔记本电脑要差得多呢?整个应用程序都是事件驱动的,我已经完成了大部分我认为可以通过实现完成的优化。
我有种感觉这和记忆有关。我首先创建(兼容)并将所有图像存储在数组中,然后在那里引用它们。
注:我决定做这个游戏,以便我可以学习和实践一些新的想法,所以我不只是尝试分享-我真的很有兴趣了解这里发生了什么。
发布于 2011-07-21 14:26:22
在并非所有操作系统上,Java2D呈现管道都支持GPU的硬件加速。这取决于您正在使用的Java实现。
Oracle的Java 7实现(本月底即将发布)的新特性之一是:Java2D的XRender管道,这意味着它在Linux上具有更好的2D图形性能。
对于Windows,JavaSE6UPDATE 10通过使用Direct3D硬件加速(来源)进行了一些改进,使Java2D性能更好。
发布于 2011-07-21 14:23:00
对于Mac,您应该尝试系统功能和呈现提示,特别是告诉在本文件中,使用本机Quartz呈现器而不是Sun呈现器的提示。
发布于 2011-07-30 12:26:10
..why,是不是有些电脑的性能至少是我笔记本电脑的一半?
录像司机。很久以前,我参与了usenet上的一个线程,在具有类似规范的机器上呈现速度有着显著的差异。最终得出的结论是,一些机器正在使用过时的视频驱动程序,这是造成这种差异的根本原因。
如果结果是这样的话,你最好的选择就是做一个渲染测试。检查FPS,如果太低,建议用户更新驱动程序。
https://stackoverflow.com/questions/6777409
复制相似问题