Postaram się, aby to pytanie było na razie ogólne i uniknąć zaśmiecania tego kodem.Core Data Overcessive VM: Pamięć podręczna stron SQLite
Mam aplikację na iOS, która używa danych podstawowych (sqlite
) dla swojego magazynu danych. Model jest dość złożony, z dużą hierarchią obiektów. Podczas pobierania i importowania tych dużych zestawów danych zauważam, że aplikacja wyłącza się po pewnym czasie z powodu ostrzeżenia o pamięci.
Profiler alokacji pokazuje mi nadmierne "przejściowe" obiekty strony VM: SQLite
. Rozmiar tego stale rośnie i rośnie, ale nigdy nie spada. Próbowałem upewnić się, że wszystkie moje zapisy NSManagedObjectContext
występują wewnątrz wywołań performBlock.
Wydaje mi się, że istnieją konteksty obiektowe, które nie są zwalniane i/lub resetowane.
Próbowałem wyłączyć UndoManager w NSManagedObjectContext
. ustawiając stichyInterval na bardzo niską wartość (1.0) i wywołując reset na moich MOC-ach po zakończeniu zapisywania danych podczas importu.
Co to oznacza, gdy pamięć podręczna stron przejściowych VM SQLite
nadal rośnie tak wysoko? Co należy zrobić, aby obniżyć pamięć podręczną strony?
Jaki jest dopuszczalny rozmiar tej pamięci podręcznej, aby uzyskać dostęp do dużej aplikacji Core Data?
Dzięki,
Udało ci się znaleźć jakieś rozwiązanie? Mam dokładnie ten sam problem .. –
Właśnie odpowiedział na pytanie poniżej. – dmclean