jpe*_*erl 3 memory allocation objective-c ios
在编写基于物理的游戏时,我创建了从子类NSObjects创建的所有内容.对于每个粒子对象,力矢量存储在NSArrays中,然后使用CADisplayLink以60fps计算加速度,速度和位置.
版本1并不是要进行优化,但它似乎运行得很好.CADisplayLink快速且一致.但是,当我查看分配统计数据时......好吧,我从来没有见过类似的东西.ARC在将Live Bytes保持在1兆字节以下方面表现非常出色,但这一事情正在通过每分钟6分钟的整体分配进行粉碎.
所以我的问题是:
这段代码很长时间在设备上运行会很危险吗?这有多"糟糕"?如果我继续这样开发,苹果会接受这个还是我要炒iPad?

bbu*_*bum 15
优化以最小化分配吞吐量是一种非常有效的方法.
值得注意的是,每次分配都可能需要触发分配中的大多数字节,可能需要在分配中的每个字节进行一些写入和多次读取.所有这些读/写都需要CPU周期和系统总线上的事务.
所以,是的,它会吃电池并会提高系统温度.但是,不太可能烧毁设备.:)
按"#Transitory"排序,并开始计算如何消除暂时性分配.我通常最初忽略各种Malloc ## Bytes分配,因为这些分配通常是在某些类的实例中支持存储.消除瞬态实例和mallocs的下降.
对于任何给定的分配类型,您可以单击以查看创建该类型的所有分配的列表.按功能名称排序,然后感受最常见的功能.在那里定位您的优化.
使用这种方法,我已经能够大规模优化一些大型应用程序; 通过简单地最小化分配率,有时可以将执行某些操作的时间减少75%以上!
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |