Сбой из-за управления памятью (с использованием Core Data) - PullRequest
0 голосов
/ 09 ноября 2010

Я использую Core Data. Оттуда я получаю 10000+ данных

Используя NSOperation, я отображаю огромные данные на UITableView.

но, как я вижу в XCode Instruments, использование памяти постоянно увеличивается

по этой причине происходит сбой в устройстве, а не в симуляторе

Кто-нибудь хотел бы прокомментировать это?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Не извлекайте 10000 объектов одновременно.

Используйте NSAutoreleasePool и очищайте пул через некоторый постоянный интервал (интервал должен быть определен посредством тестирования)

Каждые N итераций:

  1. сохранить ваш контекст
  2. сбросить ваш контекст
  3. истощите свой бассейн

Это уменьшит использование памяти при импорте.

0 голосов
/ 09 ноября 2010

Симулятор имеет практически неограниченную память, поскольку он использует память Mac, поэтому может даже подключаться к жесткому диску.С другой стороны, iDevice имеет очень ограниченную память.

Из вашего описания не ясно, что вы делаете неправильно.Вам решать проанализировать это, с инструментами вы уже на хорошем пути.Используйте инструментальный анализ инструментов, чтобы определить, где у вашего приложения происходит утечка памяти.Недавно bbum написал хорошую статью о том, как его использовать: http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/.Есть также хорошее видео из WWDC, разработанное инженерами Apple, об использовании инструментов, которые стоит посмотреть: http://developer.apple.com/videos/wwdc/2010/

...