Uso de la memoria de datos del núcleo y advertencia de memoria

Tengo este problema. Tengo una base de datos de imágenes en Core Data. Traigo todas las imágenes (aproximadamente 80MB) y las coloco en un NSMutableArray. Los objetos están correctamente fallados:

NSArray *fetchResults = [self.managedObjectContext executeFetchRequest:request error:&error];
self.cache = [NSMutableArray arrayWithArray:fetchResults];
for (ImageCache *imageObject in self.cache) {
    NSLog(@"Is fault? %i", [imageObject isFault]);
}

Al leer el registro, veo que todos los objetos tienen fallas correctamente. Sin embargo, al usar Instrumentos, veo que se usan 80 MB de memoria. Creo que esta es la razón por la que Core Data almacena sus resultados en caché, y debería liberar la memoria cuando sea necesario. Pero (y este es mi "problema"), si simulo una advertencia de memoria, ¡no pasa nada! El 80MB permanece allí.

Mirando instrumentos - asignaciones, los 80MB son utilizados por muchos Malloc: (ejemplo)

Gráfico Categoría Live Bytes # Vida # Transitorio General Bytes # General # Asignaciones (Neto / General) 0 Malloc 176,00 KB 8,59 MB 50 57 18,39 MB 107% 0,00,% 0,00 0 Malloc 200,00 KB 8,20 MB 42 460 98,05 MB 502% 0,00,% 0,04 0 Malloc 168,00 KB 7,05 MB 43 19 10,17 MB 62% 0,00,% 0,00

Este es un enlace a una imagen de todo el árbol de llamadas:https://www.dropbox.com/s/du1b5a5wooif4w7/Call%20Tree.png

¿Algunas ideas? Gracias