Widziałem, jak to się dzieje, używając instrumentów do mojej aplikacji. Kiedy profilowałem swoją aplikację, zajęta początkowa pamięć to 563 KB, która pojawia się przed wyświetleniem UIImagePickerController
. Jest jeden przycisk na pierwszym viewController, który powoduje pojawienie się UIImagePickerController
.
Po pojawieniu się UIImagePickerController
pamięć zajęta przechodzi do stanu 1,6-1,7 MB. Jeśli wybiorę dowolny obraz lub anuluję UIImagePickerController
, zajmowana pamięć to nadal 1,6 - 1,7 MB, która moim zdaniem powinna być 563 KB (lub może być trochę większa od KB).
proszę zobaczyć poniższy kod użyłem:UIImagePickerController nie zwalnia pamięci, którą zajmuje
- (IBAction)chooseButtonPressed:(id)sender
{
UIImagePickerController *pickerController = [[UIImagePickerController new]autorelease];
[pickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[pickerController setDelegate:self];
}
Dlaczego pamięć nie zostanie wydana?
Czy patrząc na 'ogólnej bytes' zajętego lub' żywo bytes'?Z oczywistych powodów "ogólna liczba bajtów" nigdy nie spadnie ... – tipycalFlow
Tak, patrzę na całkowite bajty. Ale dlaczego nie zmniejszy się? – Nitish
Jest to niewidoczna suma wszystkich bajtów, które kiedykolwiek zostały dodane do pamięci. Po zwolnieniu pamięci suma nie zmniejsza się. Po lewej stronie "ogólnych bajtów" musi znajdować się kolumna "żywych bajtów". Obserwuj wartości z tej kolumny, a na twoje pytanie odpowiesz! – tipycalFlow