Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Оптимизация производительности приложений для iOS. Для профессионалов

Покупка
Артикул: 816888.01.99
Доступ онлайн
439 ₽
В корзину
Книга демонстрирует, как совершенствовать, увеличивать и оптимизировать производительность приложений для операционной системы iOS. Вы быстро научитесь создавать быстрые и отзывчивые приложения, пригодные для распространения на коммерческой основе. Эта книга охватывает множество общих и вместе с тем сложных проблем, возникающих при оптимизации производительности приложений для iPhone и iPad, и подробно описывает, как эффективно их решать. Она содержит массу практических знаний, приемов, советов и рекомендаций, которые помогут вам преуспеть в конкурентном мире разработки приложений для iOS. Издание предназначено для программистов разной квалификации, разрабатывающих мобильные приложения под iOS.
Во, Х. Оптимизация производительности приложений для iOS. Для профессионалов : практическое руководство / Х. Во ; пер. с англ. - 2-е изд. - Москва : ДМК Пресс, 2023. - 321 с. - ISBN 978-5-89818-512-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107185 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Оптимизация 
производительности 
приложений для iOS

Для профессионалов

Ханг Во

Pro 
iOS Apps Performance 
Optimization

Khang Vo

Оптимизация 
производительности 
приложений для iOS

Для профессионалов

Москва, 2023

Ханг Во

Издание рекомендовано в качестве учебного пособия 
для студентов технических вузов

2-е издание, электронное

УДК 004.451iOS
ББК 32.973.26-018.2
В61

В61
Во, Ханг.
Оптимизация производительности приложений для iOS. Для профессионалов / Х. Во ; пер. с англ. — 2-е изд., эл. — 1 файл pdf : 321 с. — Москва : 
ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe 
Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-512-1
Книга демонстрирует, как совершенствовать, увеличивать и оптимизировать 
производительность приложений для операционной системы iOS. Вы быстро научитесь создавать быстрые и отзывчивые приложения, пригодные для распространения на коммерческой основе. Эта книга охватывает множество общих и вместе с 
тем сложных проблем, возникающих при оптимизации производительности приложений для iPhone и iPad, и подробно описывает, как эффективно их решать. Она 
содержит массу практических знаний, приемов, советов и рекомендаций, которые 
помогут вам преуспеть в конкурентном мире разработки приложений для iOS.
Издание предназначено для программистов разной квалификации, разрабатывающих мобильные приложения под iOS.

УДК 004.451iOS 
ББК 32.973.26-018.2

Электронное издание на основе печатного издания: Оптимизация производительности приложений для iOS. Для профессионалов / Х. Во ; пер. с англ. — Москва : ДМК Пресс, 2013. — 
320 с. — ISBN 978-5-94074-856-4. — Текст : непосредственный.

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

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами 
защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-512-1
©  2011 by Khang Vo
© Оформление, перевод ДМК Пресс, 2013

Посвящается моей девушке, Хуэйн Нган (Ngan Huynh), 
с благодарностью за любовь, большую поддержку 
и воодушевление

Содержание

Содержание

Об авторе ........................................................................................ 11

О техническом консультанте ..................................................... 12

Благодарности .............................................................................. 13

Предисловие ................................................................................. 14

Глава 1. Введение в оптимизацию производительности 
iOS .................................................................................................... 15

Новая эра смартфонов .................................................................. 15
Почему важна производительность ............................................... 15
Для кого предназначена эта книга ................................................. 16
Стиль автора ................................................................................. 16
Что вам потребуется ..................................................................... 17
Как пользоваться этой книгой ....................................................... 18
Обзор книги .................................................................................. 18
Загружаемые примеры ................................................................. 20
Обратная связь ............................................................................. 20

Глава 2. Оценка  производительности 
с использованием эмулятора и действующего 
устройства ..................................................................................... 21

Эмулятор и действующее устройство ............................................ 22
Память и производительность ....................................................... 23
Инструменты ................................................................................. 23
Основные инструменты ............................................................ 24
Инструмент Allocations (Распределение памяти) ...................... 25
Унаследованный код ................................................................ 29
Инструменты оценки производительности ............................... 34
Выводы ......................................................................................... 55
Упражнения .............................................................................. 55

Содержание

Глава 3. Увеличение производительности 
UITableView ..................................................................................... 57

Предисловие к примерам .............................................................. 58
Повторный обзор инструментов ............................................... 58
Первый пример ........................................................................ 59
Второй пример ......................................................................... 69
Чему учат данные примеры ...................................................... 73
Другие приемы.............................................................................. 74
Сохранение значения высоты................................................... 74
Прозрачность ........................................................................... 75
Отключение графических эффектов ......................................... 76
Производительность редактирования/переупорядочивания ......... 76
Выводы ......................................................................................... 77
Упражнения ................................................................................... 79

Глава 4. Кеширование изображений и данных ..................... 80

Разница производительности обработки сети, файлов и памяти ... 80
Выявление узкого места .......................................................... 81
Введение в кеширование .............................................................. 83
Что такое кеширование? .......................................................... 83
Попадание в кеш ...................................................................... 84
Промах кеша ............................................................................ 84
Издержки извлечения .............................................................. 84
Издержки хранения .................................................................. 85
Недостоверность кеша ............................................................. 85
Политика вытеснения ............................................................... 86
Алгоритмы кеширования .......................................................... 87
Оценка кеша ............................................................................ 94
Что следует кешировать ................................................................ 95
Где хранить изображения ......................................................... 95
Кеширование данных ............................................................. 100
Выводы ....................................................................................... 109
Упражнения ................................................................................. 110

Глава 5. Оптимизация алгоритмов и структур данных ...... 111

Первый пример ........................................................................... 111
Теоретические вопросы тестирования производительности 
алгоритмов ................................................................................. 114
Как измерить «большое О» ..................................................... 114
Сведения о реализации ......................................................... 116

Содержание

«Большое О» известных алгоритмов ....................................... 117
Практическая оценка ................................................................... 118
Структуры данных и алгоритмы ................................................... 119
Структуры данных Cocoa Touch .............................................. 120
Прочие структуры данных....................................................... 132
Двоичное дерево ................................................................... 147
Граф ....................................................................................... 152
Прочие алгоритмы и подходы к решению проблем ...................... 159
Рекурсия ................................................................................ 160
Парсер SAX/DOM для xml-парсинга   ...................................... 161
Выводы   ...................................................................................... 163
Упражнения ................................................................................. 164

Глава 6. Ускорение доступа к данным с использованием 
приемов многопоточного программирования .................... 166

Что такое потоки и многопоточность ........................................... 166
Терминология ............................................................................. 168
Первый пример ........................................................................... 169
Преимущества многопоточности ................................................ 172
Создание многопоточных приложений ........................................ 174
Создание потока .................................................................... 174
Настройка потока  .................................................................. 182
Начало работы потока ............................................................ 183
Опасности, связанные с потоками ......................................... 187
Синхронизация потоков ......................................................... 205
Альтернативы потокам ........................................................... 207
Инструмент Thread States (Состояние потоков)  .......................... 211
Выводы ....................................................................................... 212
Упражнения ................................................................................. 212

Глава 7. Оптимизация использования памяти .................... 213

Краткий обзор ............................................................................. 214
Старая политика владения объектом...................................... 214
Автоматическое освобождение объектов ............................... 214
Пул автоматически освобождаемых объектов ........................ 215
Автоматический подсчет ссылок ................................................. 217
Как настроить проект в XCode ................................................ 217
Политика автоматического подсчета ссылок .......................... 218
Новые модификаторы для автоматического подсчета ссылок ... 219
Свойства объектов ................................................................. 220
Дополнительные вопросы ........................................................... 221

Содержание

Удерживающие циклические ссылки ...................................... 221
Слабые ссылки  ...................................................................... 222
UIViewController ........................................................................... 222
Процесс загрузки представления ........................................... 223
Процесс выгрузки представления .......................................... 224
Отображение и сокрытие представлений ............................... 225
Копирование объектов ................................................................ 226
Поверхностное и полное копирование ................................... 227
Реализация полного копирования .......................................... 227
Интегрирование метода копирования в объект ...................... 229
Дополнительные возможности пула автоматически 
освобождаемых объектов ........................................................... 230
Пул автоматически освобождаемых объектов и стек .............. 230
Пулы автоматически освобождаемых объектов и потоки ........ 231
Влияние пулов автоматически освобождаемых объектов 
на производительность .......................................................... 231
Инструменты ............................................................................... 232
Статический анализатор ........................................................ 232
Инструмент Leaks (Утечки памяти) ......................................... 233
Объекты-зомби ...................................................................... 233
Инструмент Allocations (Распределение памяти) .................... 234
Уровни предупреждений о нехватке памяти ........................... 235
Выводы ....................................................................................... 235
Упражнения ................................................................................. 235

Глава 8. Использование приемов многопоточного 
программирования и эффективного управления 
памятью в многозадачных приложениях .............................. 236

Что представляет собой многозадачность в iPhone ..................... 236
Жизненный цикл многозадачности ......................................... 237
Преимущества и издержки многозадачности ......................... 244
Фоновые службы ......................................................................... 245
Служба воспроизведения звука ............................................. 245
Отображение экрана-заставки ............................................... 247
Служба определения географического местоположения ....... 247
Локальное уведомление ......................................................... 251
IP-телефония (VOIP) ............................................................... 252
Выполнение в фоновом режиме ............................................. 252
На что обратить внимание при работе в фоновом режиме ...... 255
Уведомления о системных изменениях .................................. 257
Совместимость с разными версиями iOS .................................... 258

Содержание

Выводы ....................................................................................... 259
Упражнения ................................................................................. 259

Глава 9. Улучшение производительности 
с использованием C/C++ .......................................................... 260

Преимущества и недостатки ....................................................... 261
Основы программирования на C и C++ ........................................ 262
Программирование на C ........................................................ 262
Программирование на C++ .................................................... 275
Практический пример ................................................................. 282
SQLite ..................................................................................... 282
Интеграция C++ в приложение ............................................... 284
Выводы ....................................................................................... 284
Упражнения ................................................................................. 285

Глава 10. Сравнение проблем производительности 
устройств на базе Android и Windows Phone ........................ 286

Общий обзор ............................................................................... 287
Тестирование в эмуляторе и на действующих устройствах .......... 288
Эмулятор и действующие устройства..................................... 288
Оценка производительности .................................................. 289
Производительность ListView  ...................................................... 291
Android ................................................................................... 292
Windows Phone ....................................................................... 295
Кеширование данных .................................................................. 296
Android ................................................................................... 297
Windows Phone ....................................................................... 299
Структуры данных и алгоритмы ................................................... 301
Многопоточность ........................................................................ 302
Android ................................................................................... 303
Windows Phone ....................................................................... 306
Управление памятью ................................................................... 307
Andriod ................................................................................... 308
Windows Phone  ...................................................................... 309
Многозадачность ........................................................................ 311
Android ................................................................................... 311
Поддержка программирования на C/C++ .................................... 312
Выводы ....................................................................................... 313
Упражнения ................................................................................. 314

Предметный указатель ............................................................. 315

Доступ онлайн
439 ₽
В корзину