首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析和优化游戏android

分析和优化游戏android
EN

Stack Overflow用户
提问于 2011-04-28 20:35:30
回答 3查看 2.4K关注 0票数 3

我正在制作我的第一个Android游戏,它将是一个使用opengl es的3D街机游戏。我已经做了很长一段时间了,主要是为了将来的灵活性而优化引擎。

无论如何,现在我已经完全完成了游戏的功能和所有漂亮的东西,但它落后于手机,而不是我的调试手机。这款游戏对于移动游戏来说是相当高质量的图形,所以预计会有一点滞后,但是在Nexus上运行游戏和在MyTouch 4G上运行游戏的性能差别是巨大的。这款游戏甚至不能在像LG擎天柱这样的低端手机上玩(游戏运行,但太不稳定,无法舒适地玩)。在我的Nexus上,我很少(如果我曾经在游戏中实现帧速率独立运动),但是在MyTouch 4G上它更常见,尽管游戏仍然是playable....but烦人的。

我来自桌面游戏开发背景,优化从来没有对我感兴趣。你有什么建议可以帮我加速比赛吗?

我已经尽可能地优化了代码,性能也有了很大的提高,但是我似乎忽略了一些东西。这是一个巨大的游戏,一个完整的引擎和大量的代码。

我已经尝试过跟踪所有的分配,并确保它们在运行时不会被释放或忘记,这样在运行时GC就不会被调用。这基本上就是我所能想到的,我不知道还有什么能让它变慢

我对网格的多重计数表示怀疑,因为即使它们是高质量的,我也在游戏中添加了一个选项,让您可以选择低、中、高的图形质量,就像在电脑游戏中一样,低和高的区别在600到900个顶点之间!我注意到的唯一改进就是负载时间。此外,也没有任何特殊的后处理效果,照明,着色器,实时SSS,或任何那样。只是纹理的脸:P

另外,我想说的是“延迟”是随机冻结的。我很确定他们是GC,但这可能是另一回事,因为我认为我已经找到并控制了所有的分配(有很多)。因为我的游戏是帧速率独立的,每当它解冻,玩家和敌人和一切‘跳跃’跟上,这使得一个已经困难的游戏更难了!

我对分析和优化很陌生。我如何使用android调试工具(或其他第三方工具)来更好地了解我的游戏在运行时的表现,以及它何时/为什么会冻结,以便我能够修复它们。

另外,还有一个额外的问题:):有没有办法让我看看它在其他手机上的表现如何,而不用真正拥有手机,也不认识拥有手机的人?比如,即使我没有Droid,也没有我认识的任何人,Droid的速度会有多快?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-08 20:13:20

您试过用traceview分析代码吗?插入

代码语言:javascript
复制
Debug.startMethodTracing("myfile");

在onCreate中,

代码语言:javascript
复制
Debug.stopMethodTracing();

你想让它写完文件的地方。若要查看结果,请将设备插入计算机并运行:

代码语言:javascript
复制
/path/to/android-sdk/platform-tools/adb pull /sdcard/myfile.trace
/path/to/android-sdk/tools/traceview ./myfile.trace

这将显示哪些课程需要更多的时间。您可以优化较慢的类,并/或将其移动到后台线程。

你说过它在一些手机上运行得很好,也许那些是有24 of /app限制的新手机,而不是16 of/app限制?您可以在Eclipse中尝试内存分析器,以检查内存泄漏或不必要的大型对象。要安装,请转到帮助->安装软件,并使用

代码语言:javascript
复制
http://download.eclipse.org/mat/1.1/update-site/

然后,当您在DDMS视图中调试时,选择(带红色箭头的绿色玻璃),它应该打开内存分析器。

编辑-

现在看来,您需要转换Android文件,正如这里所描述的那样。

票数 6
EN

Stack Overflow用户

发布于 2011-04-30 14:45:18

基本上这就是我所能想到的。我不知道还有什么能让它滞后。

很多人都是这样做的,那就是通过思考事物来进行优化。这将使你走一半路,但只走一半路,特别是当软件很大的时候。

实际上,代码中的东西需要时间暴露自己才能通过快照来发现。你不需要去想他们。你只要让程序显示出来。下面是一个例子。

票数 0
EN

Stack Overflow用户

发布于 2012-01-15 10:25:18

首先,仔细看看逻辑猫在说什么。也许你会找到不想要的滞后的答案。其次,如果要检查方法执行的频率和时间,只需使用DDMS即可。不知道您使用的是哪种环境,但是Eclipse中有一个透视图,它有一个名为“开始方法分析”的选项。只需点击它,而不是等待几秒钟,然后取消点击它。过一会儿你就会得到压倒性的报告。设备问题,让我举个例子:“如果你想知道你的应用程序在给定设备上的表现,你需要在该设备上进行测试。”从1

1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5824638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档