Tim*_*Tim 18 eclipse debugging multithreading android
我正在开发一款安卓游戏,我开始注意到在开发过程中有点迟钝,所以我想尝试利用多线程来获得乐趣和学习.
我的应用程序有3个主题:
我尽可能地最小化了线程2和3之间的关键部分,并且认为游戏逻辑可以独立于渲染线程进行更新,然后在两个线程的末尾我可以有一个尽可能短的窗口,我推动所有图形从逻辑线程更新到游戏循环.这应该允许两个线程在大多数情况下独立工作.理论上听起来像是表演胜利.
然而,一旦我开始实施,我的表现就大了不少.它比以前更糟糕,一个更新和渲染循环花了50毫秒(20fps),所以它看起来像垃圾.这只是渲染大约20个三角形和20个纹理四边形,这是一个非常简单的工作量(我不敢想到当我实现适当的图形时会是什么).
无论如何,我在android中使用DDMS跟踪来描述出现问题或者可以改进的地方.
http://i.stack.imgur.com/DDUYE.png
这是我游戏大约3帧的视图.到目前为止,它似乎大致按照我的预期行事.以蓝色突出显示的部分是锁定部分,它看起来是正确的(保持glThread在锁定时大多等待).然而,一旦我解锁它,我应该看到两个线程同时工作,看起来它们是,但如果我仔细观察:
http://i.stack.imgur.com/vukXQ.png
我正在双核手机上进行开发,但如果我理解了它的正确性,它看起来并不像是并行执行任何操作,而且更糟糕的是它似乎每毫秒切换活动线程数百次!(除非我不正确地解释这个).所有这些上下文切换似乎对性能都很糟糕,所以我不确定为什么它会如此快速地来回切换.
因此,在我冗长的解释之后,我想知道一些事情:
非常好的问题,让我从答案开始:
希望这个答案对您有所帮助。
归档时间: |
|
查看次数: |
1533 次 |
最近记录: |