Мое приложение использует довольно много памяти, и поэтому оно часто убивается сторожевым таймером.
В моих попытках уменьшить потребление памяти (и изменить некоторые другие вещи) я переписал некоторые системные функции (точнее, заменил несколько классов CoreText).
Это на самом деле прошло довольно хорошо, и мне удалось сократить потребление памяти на ~ 3 МБ (в соответствии с распределением и инструментами контроля памяти).
Тем не менее, теперь мое приложение убито сторожевым путём раньше. Когда старая версия все еще работает (хотя и занимает больше памяти), новая версия убивается ОС.
Я думаю, что это может произойти из-за чрезмерного использования malloc / free для выделения / освобождения множества небольших структур в куче.
Это так?
Какие другие проблемы могут быть причиной этого поведения (уменьшение потребления памяти / сторожевой таймер убивает приложение быстрее)?
Может ли это быть из-за того, что теперь мое приложение управляет памятью, а не системной библиотекой?