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


Презентации» Технология» Ошибки при работе с памятью на iOS
Ошибки при работе с памятью на iOS
 Поиск причин падений вАудитория
 Разработчики
 Разработчики под iOSРабота с памятью под iOS
 reference counted
 NSObject
 alloc/dealloc
 retain/release
 retainCountРабота с памятью под iOS
 plane = [[Plane alloc] init];
 plane2Ошибки при работе с памятью
 Утечки типа 1:  	ссылки удалены,Утечки первого типа
 leakedPlane = [[Plane alloc] init];
 …
 leakedPlaner =Утечки второго типа
 leakedPlane = [[Plane alloc] init];
 [leakedPlane retain]
 [leakedPlaneОбращение к освобожденному объекту
 leakedPlane1 = [[Plane alloc] init];
 leakedPlane2 =Low memory
 Processes
          Name                 UUID                    Count resident pages
      EXC_BAD ACCESS
 Program received signal:  “EXC_BAD_ACCESS”Что с этим делать?
 Утечки памяти первого типа (объекты без ссылок)
DEMOАнализ связей
 Кто владеет этим объектом?
 Карта связей
 По каким событиямВопросы???Контактная информация
 Станислав Краснояров
 Stanislav.Krasnoyarov@gmail.com



Слайды и текст этой презентации
Слайд 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];

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

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

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

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

Слайд 9
Описание слайда:
Low memory Processes          Name                 UUID                    Count resident pages       MobileMail <0798395dde43ca46317db6e674dfbbfd>    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

Слайд 10
Описание слайда:
EXC_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

Слайд 12
Описание слайда:
DEMO

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

Слайд 14
Описание слайда:
Вопросы???

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


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

Похожие презентации