2010-12-13 66 views
1

我正在使用儀器計算iPad應用程序的內存問題 - 查看總體分配的字節。我的NSTimer導致字節不斷增加,同時註釋它會導致內存使用保持不變。NSTimer不間斷內存增加 - iOS錯誤?

從我的視圖控制器的viewDidLoad中:

tickTime = 1.0/30.0; 
tickTimer = [NSTimer scheduledTimerWithTimeInterval:tickTime target: self selector:@selector(update2) userInfo: nil repeats: YES]; 

而且方法UPDATE2:

- (void) update2 { 

} 

正如你所看到的是沒有在任何方法做 - 但應用程序的內存使用情況不斷成長。如果我註釋掉設置定時器的行,內存使用率保持不變。

這是在iOS SDK中的錯誤嗎?有誰知道解決方法?

+0

你能更具體地瞭解這個計時器的用途嗎?你需要它來頻繁更新嗎?另外,什麼類型的變量是'tickTime'? – 2010-12-13 19:33:40

回答

0

如果您通過UI執行某些操作,內存是否會使用放置?即如果你點擊一個按鈕或什麼?

什麼對象都掛着有關不應該?儀器提供了更多的信息,而不僅僅是你的堆越來越多。

通常,具有蜱在第二間隔的1/30號的定時器是要避免的。

  • 如果是在主線程,它會讓你的應用程序的響應速度非常流暢(最好)或完全沒有反應

  • ,如果你正在嘗試做動畫,使用的Core Animation(或一個

  • 的各種Open GL的模式),它會吃的電池壽命。

+1

我說「要避免」,而不是「完全破碎」。如果可能,應避免任何類型的投票或快速消防機制。如果讓系統儘可能多地處理緊張的週期性任務,您的應用將表現得更好,消耗更少的電量。 – bbum 2010-12-13 21:08:30

0

我認爲計時器可能會「開火」以便iPhone快速處理。我有這個相同的問題,不得不減慢計時器。

1

這是一個pebkac問題 - 我正在學習「整體字節」的儀器,它是應用程序曾經使用的所有內存的措施,而不是目前的內存使用量的措施。

我還是好奇如何衡量應用程序的當前總內存使用 - 作爲「活字節」大約是1.5MB - 即使裝.pngs至少20MB。