2015-02-21 2 views
2

Я пытаюсь найти способ захвата небольших сбоев памяти. Большинство инструментов отчетности о сбоях, например Crashlytics, не захватывают низкую память os.Получить уведомление о сбоях в работе с низкой памятью

https://twitter.com/crashlytics/status/235018252647010304 http://support.crashlytics.com/knowledgebase/articles/123408-do-you-catch-out-of-memory-crashes

Кто-нибудь знает о каких-либо инструментов аварии отчетности, которые улавливают низкие сбои памяти? Или кто-нибудь знает способ обнаружения этих сбоев без каких-либо дополнительных инструментов отчетности?

Спасибо!

+0

Невозможно. Если ваше приложение может «поймать» низкое прерывание памяти, оно может продолжить выполнение, что приведет к победе в цели сокращения памяти. – Dex

+0

Возможно. Приложение может периодически отправлять статистику памяти в виде сердечных сокращений на монитор (другое приложение или сервер) или просто записывать их локально. Также могут быть записаны предупреждения о низкой памяти и сбросы стеков. Разрыв в сердцебиении может быть истолкован как авария. В качестве доказательств будут использованы статистические данные о памяти/предупреждения и отсутствие другой информации о сбоях. – bjc

ответ

2

Вы не можете «поймать» предупреждение о низкой памяти, но вы можете быть уведомлены заранее о них. Вы можете реализовать applicationDidReceiveMemoryWarning: в своем делете приложения или ответить на UIApplicationDidReceiveMemoryWarningNotification. Кроме того, ваше приложение не уведомляется о его прекращении.

Вы также можете сохранить переходные данные в NSCache, и он исчезнет под давлением памяти.

Смежные вопросы