我开发了一个网络扩展程序,一旦内存达到5MB标记就会崩溃。经过谷歌搜索后我发现在iOS 9内存扩展限制为5MB,在iOS 10及以上版本中有15MB.My扩展在iOS 11设备上运行良好所以这些统计数据对我自己来说是真实的。虽然我找不到任何关于内存限制的官方文档。
我只是想知道有没有一种方法可以代表app而不是代表扩展来运行部分代码,然后再从app中获取数据。只是随机想一想!!
此外,如果有任何方法可以减少扩展程序的内存使用量,请分享您的想法(随机欢迎也是如此)。
添加了一些似乎对我自己最可疑的代码。
CFErrorRef err = NULL;
NSLog(@"URL to be examined is: %s",url);
NSURL* URL = [NSURL URLWithString:[NSString stringWithUTF8String:url]];
NSString* str = [NSString stringWithUTF8String:pacData];
NSArray* proxies = CFBridgingRelease(CFNetworkCopyProxiesForAutoConfigurationScript((__bridge CFStringRef)str, (__bridge CFURLRef)URL, &err));
NSLog(@"Proxies Found are: %s",url);
if(err || !proxies || [proxies count] < 1){
NSError* nserr = CFBridgingRelease(err);
NSLog(@"pac err:%@",nserr.debugDescription);
nserr = nil;
}else{
NSDictionary* settings = [proxies objectAtIndex:0];
NSString* temp = [settings objectForKey:(NSString*)kCFProxyHostNameKey];
NSNumber* port = [settings objectForKey:(NSString*)kCFProxyPortNumberKey];
if(temp){
NSLog(@"pac success:%@",temp);
returnvalue = [NSString stringWithFormat:@"PROXY %@:%d;",temp,port.intValue];
// return (char*)temp.UTF8String;
}
settings = nil;
temp = nil;
port = nil;
}
URL = nil;
str = nil;
proxies = nil;