IPhone Watchdog & Malloc - PullRequest
       1

IPhone Watchdog & Malloc

0 голосов
/ 19 августа 2010

Мое приложение использует довольно много памяти, и поэтому оно часто убивается сторожевым таймером. В моих попытках уменьшить потребление памяти (и изменить некоторые другие вещи) я переписал некоторые системные функции (точнее, заменил несколько классов CoreText).

Это на самом деле прошло довольно хорошо, и мне удалось сократить потребление памяти на ~ 3 МБ (в соответствии с распределением и инструментами контроля памяти). Тем не менее, теперь мое приложение убито сторожевым путём раньше. Когда старая версия все еще работает (хотя и занимает больше памяти), новая версия убивается ОС.

Я думаю, что это может произойти из-за чрезмерного использования malloc / free для выделения / освобождения множества небольших структур в куче.

Это так?
Какие другие проблемы могут быть причиной этого поведения (уменьшение потребления памяти / сторожевой таймер убивает приложение быстрее)?
Может ли это быть из-за того, что теперь мое приложение управляет памятью, а не системной библиотекой?

1 Ответ

1 голос
/ 19 августа 2010

Если вы получаете сторожевого пса, это просто означает, что вы слишком долго не реагируете.Вам нужно поместить некоторый код на место, чтобы обновить пользователя, который вы заняты.На экране также должна быть предусмотрена функция отмены, чтобы пользователь мог прервать процесс, который занимает слишком много времени.

...