iOS 9: сбой расширения при достижении 5 МБ памяти - PullRequest
0 голосов
/ 25 апреля 2018

Я разработал сетевое расширение, и оно падает, как только его память достигает 5 МБ. После поиска в Google я обнаружил, что в iOS 9 ограничение памяти для расширений составляет 5 МБ, а в iOS 10 и выше - 15 МБ. Мое расширение хорошо работает на устройстве iOS 11таким образом, эти статистические данные кажутся мне верными. Хотя я не смог найти никакой официальной документации по ограничению памяти.

Мне было просто интересно, как можно запустить часть моего кода от имени приложения вместо имени расширения изатем извлекайте данные из приложения. Просто случайная мысль !!

Также, если есть какой-либо способ уменьшить использование памяти расширениями, пожалуйста, поделитесь своими мыслями (случайные тоже приветствуются).

Добавлена ​​часть кода, которая кажется мне самой подозрительной.

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;
...