MKMapSnapshotter использует невероятное количество процессора и оперативной памяти

MKMapSnapshotter, кажется, использует до 2 ГБ оперативной памяти, когда находится в симуляторе, и вызывает предупреждения памяти и очень долго зависает мое приложение на устройстве. Я не уверен, какая часть моих настроек вызывает это.

Такое огромное использование происходит при одновременном извлечении нескольких изображений, но даже при извлечении нескольких изображений одно за другим, по-видимому, используются откровенно огромные объемы ОЗУ, максимум 600 МБ, и они полностью занимают ЦП, используя до 190%. Я попытался удалить всю другую логику, даже не сохраняя изображения после того, как они были запрошены, и по-прежнему происходит огромное использование ОЗУ и ЦП.

Это не может быть предназначено. Должно быть что-то, что я не настраиваю, чтобы вызвать этот безудержный захват ресурсов. Вот мой код опций:

    MKMapSnapshotOptions* options = [MKMapSnapshotOptions new];
    options.region = MKCoordinateRegionMake(CLLocationCoordinate2DMake(self.lat.doubleValue, self.lng.doubleValue), MKCoordinateSpanMake(0.01, 0.01));
    options.scale = 2.0;
    options.size = CGSizeMake(300, 44);
    options.showsBuildings = NO;

    MKMapSnapshotter* snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
    [snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
        // even if I do nothing in here, it still goes crazy
    }];

Что мне здесь не хватает?

0 ответов

Другие вопросы по тегам