0Pricing
Swift Academy · Урок

Основы Instruments: Time Profiler

Записывайте загрузку CPU, анализируйте деревья вызовов и находите узкие места в коде.

«Основы Instruments: Time Profiler» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Зачем нужны Instruments

Instruments в Xcode — это набор инструментов для анализа производительности. Профилировщик времени показывает, на что расходуется время CPU, помогая находить узкие места.

// Launch: Xcode → Product → Profile (Cmd+I)
// Choose "Time Profiler" template
// Run your app and exercise the slow path

Запись трассировки

Нажмите кнопку записи в Instruments, выполните действия, которые хотите профилировать, а затем остановите запись.

// 1. Connect device or use simulator
// 2. Launch with Profile (Cmd+I)
// 3. Select Time Profiler
// 4. Record for 5-30 seconds
// 5. Stop and analyze

Представление дерева вызовов

Дерево вызовов показывает функции, сгруппированные по затраченному времени CPU. Самые ресурсоёмкие цепочки вызовов находятся в верхней части иерархии.

// Call Tree columns:
// Self %: time spent in this function exclusively
// Symbol Name: function or method name
// Expand to see callers/callees

Самая тяжёлая трассировка стека

Панель самой тяжёлой трассировки стека показывает единственную цепочку вызовов с наибольшим числом выборок — часто это лучшее место для начала оптимизации.

// In Time Profiler:
// View → Heaviest Stack Trace
// Pinpoints the exact line consuming the most CPU

Фильтрация выборок

Включите «Hide System Libraries» и «Invert Call Tree», чтобы сосредоточиться на собственном коде, а не на фреймворках Apple.

// Call Tree options (bottom of Instruments):
// ☑ Invert Call Tree    – shows leaf functions first
// ☑ Hide System Libraries – filters out OS internals

Переход к исходному коду

Дважды щёлкните символ в дереве вызовов, чтобы сразу перейти к проблемной строке в Xcode.

// Double-click → opens file in Xcode at the hot line
// Red/orange annotation shows time spent per line

Профилировщик времени и SwiftUI

В приложениях SwiftUI ищите неожиданные вызовы body — чрезмерные перерисовки отображаются как повторяющиеся записи View.body в дереве вызовов.

// Common SwiftUI hot spots:
// - body called 100+ times per second
// - Equatable not implemented, causing unnecessary diffs
// - Heavy computation in body instead of a model

Проверка главного и фонового потоков

Дорожка потоков в верхней части показывает активность каждого потока. Всплески загрузки CPU в фоновых потоках могут указывать на чрезмерную работу за пределами главного потока.

// Thread lanes: Main Thread, Thread 2, Thread 3...
// Select a thread to see its call tree in isolation

Профилирование запуска с помощью профилировщика времени

Измерьте время запуска приложения, начав профилирование при запуске и изучив первые секунды трассировки.

// Instruments → File → Launch Profile
// Measures time from process start to first frame render

Установка базового показателя

Перед оптимизацией запишите базовую трассировку. После внесения изменений повторите профилирование и сравните результаты, чтобы подтвердить улучшение.

// Baseline: 45ms for imageLoad()
// After optimization: 8ms for imageLoad()
// Confirm: 5.6x speedup verified in Instruments

Советы для точного профилирования

Проводите профилирование на физическом устройстве в сборке для выпуска. Симуляторы и сборки для отладки искажают измерения производительности.

// Always:
// 1. Use physical device
// 2. Build with Release configuration (Product → Scheme → Edit → Build → Release)
// 3. Repeat measurement 3+ times for consistency

Быстрая проверка

Какой параметр дерева вызовов Instruments помещает листовые функции, расходующие больше всего времени, в начало списка?

Итоги урока

Запускайте профилирование с помощью Cmd+I → Time Profiler. Используйте Invert Call Tree и Hide System Libraries, чтобы сначала видеть собственный код. Дважды щёлкайте символы для перехода к исходному коду. Проводите профилирование на устройстве в режиме выпуска. Устанавливайте базовые показатели до и после оптимизации, чтобы подтвердить улучшение.

Часто задаваемые вопросы

Урок «Основы Instruments: Time Profiler» бесплатный?

Да — полный текст урока «Основы Instruments: Time Profiler» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Основы Instruments: Time Profiler»?

Записывайте загрузку CPU, анализируйте деревья вызовов и находите узкие места в коде. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Основы Instruments: Time Profiler»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы Instruments: Time Profiler
  2. Инструменты Allocations и Leaks
  3. Проверка главного потока и зависания
  4. Оптимизация узких мест: COW, встраивание и специализация
← Назад к Swift Academy