首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >性能在一段时间后下降,特别是当设备处于休息状态时。

性能在一段时间后下降,特别是当设备处于休息状态时。
EN

Stack Overflow用户
提问于 2013-08-26 08:59:30
回答 1查看 330关注 0票数 0

我有一个iPhone游戏使用统一游戏引擎和自写库访问苹果的核心运动框架。iPhone 5的性能很好,过去iPhone 4的性能也很好。

今天在iPhone 4上运行我的应用程序(iOS 6.1.3) --一段时间后,帧率会持续下降( 5-10分钟后会很明显)。大约20-30分钟后,这场比赛几乎是不可玩的,似乎以慢动作运行。

奇怪的是:这种效果会发生,尤其是当设备躺在桌子上的时候。当我移动设备时,帧速率明显上升,但在没有移动时再次下降。我发现用C# (统一游戏引擎)编写的游戏代码并不是它的罪魁祸首,而是使用Core处理运动控制的Obj部分。

我认为这个问题是在我从iOS 5.1.x升级到iOS 6.1.3时开始的,但我不确定。在问题开始的时候,很难准确确定问题发生的时间,因为我在花哨的iPhone 5上做了更长的测试,在iPhone 4上只做了快速测试(好,吸取了教训;-)。

我使用‘旧式’拉方法来获取CMDeviceMotion实例,即没有块处理程序的startDeviceMotionUpdates。牵拉代码在一个单独的线程中运行,这是最完美的方式--嗯,在过去。

统一的内置iOS分析器(console)并没有显示出大量的内存消耗,但我认为在统计中不考虑本地代码插件。据我所知,Xcode分析器也没有显示任何泄漏。只是大量的内存分配和释放,这让我有点吃惊(我认为在内部回收CMDeviceMotion实例可能会更快,但谁在乎)。

问题:iOS 6上这个星座有什么已知的问题吗?我的意思是,拉,运行在一个单独的线程,60赫兹,与联合游戏引擎+开放GL ES 2,.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-26 08:59:30

最后我找到了罪魁祸首:deviceMotionUpdateInterval

更准确地说,更改间隔(通常是)。

根据在iOS事件处理指南中选择运动事件更新间隔节的说法,更大的间隔可以提高电池寿命。因此,我实现了一些逻辑,以降低频率至2Hz时,游戏不活跃,即游戏结束,暂停,主菜单,.当恢复游戏播放时,频率再次设置为60 Hz。

在注释掉更改频率的代码后,问题消失了。所以我决定不再用这种方式来节省电池消耗。

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

https://stackoverflow.com/questions/18440341

复制
相关文章

相似问题

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