NSTimer不间断内存增加 – iOS的错误?
我正在使用仪器计算iPad应用程序的内存问题 – 查看总体分配的字节数。 我的NSTimer导致字节不断增加,同时注释它会导致内存使用保持静态。
从我的视图控制器的viewDidLoad:
tickTime = 1.0 / 30.0; tickTimer = [NSTimer scheduledTimerWithTimeInterval:tickTime target: self selector:@selector(update2) userInfo: nil repeats: YES];
而方法update2:
- (void) update2 { }
正如你所看到的,这个方法没有任何东西 – 但是应用程序的内存使用量不断增长。 如果我注释掉设置定时器的行,内存使用率保持不变。
这是iOS SDK中的错误吗? 有谁知道一个解决方法?
这是一个pebkac问题 – 我正在研究Instruments中的“Overall Bytes”,这是衡量应用程序曾经使用过的所有内存的一个度量,而不是衡量当前的内存使用情况。
我仍然好奇如何衡量应用程序当前的总内存使用情况 – “实时字节数”大约为1.5mb,即使加载了至less20mb的.png。
如果你通过用户界面进行操作,内存使用是否会下降? 也就是说,如果你点击一个button或什么的?
有什么东西挂在这不应该? 仪器提供了更多的信息,而不仅仅是你的堆越来越多。
一般情况下,要避免一个定时器以1/30秒为间隔。
-
如果它在主线程上,它会使您的应用程序的响应非常波动(最好)或完全没有响应
-
如果您正在尝试进行animation制作,请使用Core Animation(或各种Open GL模式之一)
-
它会吃电池寿命。
我相信计时器可能会“开火”来让iPhone快速处理。 我有这个相同的问题,不得不减慢计时器。