Неизвестный рост кучи - PullRequest
       3

Неизвестный рост кучи

1 голос
/ 20 декабря 2011

Есть ли кто-нибудь, кто может мне помочь или объяснить больше?

Я минимизирую свои коды, чтобы использовать кнопку для выделения и добавления UIPickerView в self.view. При нажатии этой же кнопки UIPickerView удаляется из self.view и освобождается.

При каждом удалении UIPickerView я делал снимок HeapShot с инструментами. Я обнаружил, что иногда происходит изменение 0 байтов, 4xx байтов, ... 2K байтов и 4K байтов при росте кучи. Нет утечки (КРАСНЫЙ БАР).

На самом деле, меня беспокоит то, что когда использование кучи становится все больше и больше. Наконец, мое приложение зависнет, и теперь это так. Когда я 25 раз фотографирую и отправляю на свой сервер, куча увеличивается до 1x МБ (нет явной утечки при проверке с помощью Инструментов.

Есть еще предложения?

Вот мои коды для кнопки. Похоже, что мое распределение и освобождение являются правдоподобными

- (void) nextButtonClicked {
    if (!pickerShown) {
        UIPickerView *pickervTemp = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 200.0, 320.0, 216.0)];
        self.locationPicker = pickervTemp;
        [pickervTemp release];
        [_locationPicker setDelegate:self];
        [_locationPicker setShowsSelectionIndicator:YES];
        [self.view addSubview:_locationPicker];
        pickerShown = YES;
    } else {
        pickerShown = NO;
        [_locationPicker removeFromSuperview];
        [_locationPicker release];
        _locationPicker = nil;
    }

    return;
}

1 Ответ

0 голосов
/ 21 декабря 2011

UIPickerView имеет личность. Как и UIWebView, вы не хотите создавать вещи слишком часто, даже если потом их выбрасываете. Это не утечка, но ваша куча поднимется.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...