Оптимизация производительности приложений для iOS. Для профессионалов
Покупка
Тематика:
Другие операционные системы
Издательство:
ДМК Пресс
Автор:
Во Ханг
Год издания: 2023
Кол-во страниц: 321
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-512-1
Артикул: 816888.01.99
Книга демонстрирует, как совершенствовать, увеличивать и оптимизировать производительность приложений для операционной системы iOS. Вы быстро научитесь создавать быстрые и отзывчивые приложения, пригодные для распространения на коммерческой основе. Эта книга охватывает множество общих и вместе с тем сложных проблем, возникающих при оптимизации производительности приложений для iPhone и iPad, и подробно описывает, как эффективно их решать. Она содержит массу практических знаний, приемов, советов и рекомендаций, которые помогут вам преуспеть в конкурентном мире разработки приложений для iOS.
Издание предназначено для программистов разной квалификации, разрабатывающих мобильные приложения под iOS.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Мобильная разработка
- Операционные системы и программы-оболочки
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Оптимизация производительности приложений для 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