NSTimer непрерывное увеличение памяти - ошибка iOS? - PullRequest
1 голос
/ 13 декабря 2010

Я выясняю проблемы с памятью в приложении для 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?Кто-нибудь знает обходной путь?

Ответы [ 3 ]

1 голос
/ 13 декабря 2010

Это проблема pebkac - я изучал «Общий байт» в инструментах, который является мерой всей памяти, которую приложение когда-либо использовало, а не мерой текущего использования памяти.все еще любопытно, как измерить текущее общее использование памяти приложением - поскольку «Живые байты» составляют около 1,5 МБ - даже при загруженных по меньшей мере 20 МБ .png.

0 голосов
/ 13 декабря 2010

Я считаю, что таймер может «выстрелить», чтобы ускорить процесс обработки iPhone. У меня была такая же проблема, и мне пришлось замедлить таймер.

0 голосов
/ 13 декабря 2010

Используется ли память, если вы что-то делаете через пользовательский интерфейс? То есть если вы нажмете кнопку или что-то?

Какие объекты висят, что не должно? Instruments дает гораздо больше информации, чем просто увеличение вашей кучи.

Как правило, следует избегать использования таймера с интервалом 1/30 секунды.

  • если он находится в главном потоке, это сделает отзывчивость вашего приложения очень неустойчивой (в лучшем случае) или совершенно не отвечающей

  • если вы пытаетесь сделать анимацию, используйте Core Animation (или один из различных паттернов Open GL)

  • это съест время автономной работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...