Два - чрезвычайно низкое число для размера пакета Core Data. Согласно документации , которая, вероятно, объясняет это гораздо лучше, чем я, установка размера пакета означает, что данные будут обрабатываться партиями;другими словами, Core Data запрашивает в базе данных отсортированные результаты, но извлекает только количество, заданное размером пакета, в управляемые объекты.Реализация этого - и это большая часть - это прокси-подкласс NSArray, который будет пейджировать элементы из каждого пакета всякий раз, когда к ним обращаются, либо по индексу, по перечислению, что угодно.В вашем случае это означает, что Core Data отправляется обратно в базу данных через каждые два объекта.Для NSFetchedResultsController, говорящего с UITableView, вы можете увидеть, насколько это серьезная проблема.
В противном случае 25 МБ - это не фантастика, но я видел, что приложения работают намного хуже.Я бы сказал, что ты хороший.