MKMapSnapshotter 在模拟器中似乎最多使用 2GB 的 RAM,并触发内存警告并将我的应用程序在设备上挂起很长时间。我不确定我的设置的哪一部分导致了这种情况。
这种巨大的使用量发生在同时检索多个图像时,但即使是一个接一个地检索多个图像,坦率地说,似乎也使用了大量的 RAM,峰值为 600MB,并且完全占用了 CPU,使用率高达 190%。我已经尝试删除所有其他逻辑,甚至在请求图像后不保存图像,并且仍然会出现巨大的 RAM 和 CPU 使用率。
这不是故意的。一定有一些我没有设置的东西,导致这种失控的资源占用。这是我的选项代码:
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
}];
我在这里想念什么?