Ошибки при работе с памятью на iOS презентация

Аудитория Разработчики Разработчики под iOS

Слайд 1Ошибки при работе с памятью на iOS
Поиск причин падений в связи

с “Low Memory” и EXC_BAD_ACCESS

Слайд 2Аудитория
Разработчики
Разработчики под iOS


Слайд 3Работа с памятью под iOS
reference counted
NSObject
alloc/dealloc
retain/release
retainCount


Слайд 4Работа с памятью под iOS

plane = [[Plane alloc] init];
plane2 = [plane

retain];
plane3 = plane;
[plane release];
[plane2 release];
→ [plane dealloc];

Plane


plane


plane2


plane3

1

2

0


Слайд 5Ошибки при работе с памятью
Утечки типа 1: ссылки удалены, объект живет
Утечки

типа 2: ссылки есть, объект живет (но зря)
Обращение к освобожденным объектам: ссылки живут, объект не живет

Слайд 6Утечки первого типа
leakedPlane = [[Plane alloc] init];

leakedPlaner = [[Plane alloc] init];
Plane

leakedPlane
Plane
Leak


Слайд 7Утечки второго типа
leakedPlane = [[Plane alloc] init];
[leakedPlane retain]
[leakedPlane release]

Plane

leakedPlane


Слайд 8Обращение к освобожденному объекту
leakedPlane1 = [[Plane alloc] init];
leakedPlane2 = leakedPlane1;
[leakedPlane1 release];

leakedPlane1 = nil;
[leakedPlane2 fly];

Plane


leakedPlane1


leakedPlane2

Elephant

Automobile

BAD_ACCESS


Слайд 9Low memory
Processes
         Name                 UUID                    Count resident pages
      MobileMail     692
    

MobilePhone <82c9bd8583f4b09706a16b08e641a4b9>    489
KingsHeroOrigins <307177e18450cdb18d466c8e7fbb23d9>  12718 (jettisoned) (active)

iPhone/iPod 1st & 2nd generation: 128 MB RAM
Only ~20 MB for application!!!
iPhone 3GS, iPod 3rd generation & iPad: 256 MB RAM
~110 MB for application, but multitasking



Слайд 10EXC_BAD ACCESS
Program received signal:  “EXC_BAD_ACCESS”


Слайд 11Что с этим делать?
Утечки памяти первого типа (объекты без ссылок)
Instruments, Leaks
Утечки

памяти второго типа (вечные объекты)
Instruments, ObjAlloc
Анализ связей
Переопределение retain/release
EXC_BAD_ACCESS
NSZombieEnabled (stack)
Instruments, ObjAlloc (new XCode)
Анализ связей
Переопределение retain/release/dealloc



Слайд 13Анализ связей
Кто владеет этим объектом?
Карта связей
По каким событиям он должен освобождаться?



Какие объекты должны освобождаться по этому событию?

Слайд 14Вопросы???


Слайд 15Контактная информация
Станислав Краснояров
Stanislav.Krasnoyarov@gmail.com


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика