我已经设法使用DDMS(很棒的工具)将我的分配降到了最低点,这大大减少了我的GC每3分钟大约1或2.尽管如此,我并不高兴,因为当你与它进行互动时,这些通常会导致游戏中的显着延迟(在某些手机上).
使用DDMS,我知道分配是什么,它们是从用于显示游戏信息的整数转换为HUD的字符串.
我基本上是这样做的:
int playerScore = 20929;
String playerScoreText = Integer.toString(playerScore);
canvas.drawText(playerScoreText, xPos, yPos);
Run Code Online (Sandbox Code Playgroud)
一旦每次帧更新并且HUD系统是模块化的,就会发生这种情况,因此我在需要时插入内容,这可能导致4或5个hud元素在DDMS中分配字符串和AbstractStringBuilders.
有什么方法可以进一步减少这些或消除所有String分配并只重用一个String对象?
谢谢,Albert Pucciani
小智 5
阅读你的问题让我想起了很久以前我读过的Robert Greens的一篇文章.它几乎完全相同地讨论了你的问题.http://www.rbgrn.net/content/290-light-racer-20-days-32-33-getting-great-game-performance.跳到第33天开始阅读.
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |