Я пытаюсь сократить время запуска приложения Apple Watch.Тестируя на физическом устройстве (Series 2) с использованием Time Profiler в Instruments, я вижу, что для достижения состояния переднего плана требуется около 5 секунд.В течение этого времени процессор простаивает в течение 2,5 секунд.См. Временной интервал от 0,5 до 3 секунд на этом снимке экрана с Time Profiler . Что здесь происходит?Могу ли я удалить или сократить этот простой, чтобы ускорить запуск моего приложения?
Часть моего кода Swift, которая запускается первой - ExtensionDelegate.init () - делает это за 4,5 секунды, поэтому проблема должнаиметь отношение к некоторой более ранней инициализации или загрузке библиотек.На следующих снимках экрана показано, какие системные вызовы выполняются до и сразу после интервала простоя.
Системные вызовы до интервала простоя Системные вызовы сразу после простоя
Я пытался отключить следующие части моего приложения, но не увидел каких-либо существенных улучшений:
- Большинствоэлементы в раскадровке
- Все сложности
- Мультимедийные ресурсы в комплекте расширений
- Весь код, связанный с SpriteKit
При запуске в симуляторепроблема ушлаПриложение достигает состояния переднего плана примерно через 1,5 секунды, и время простоя процессора не увеличивается.
Я использую следующие объявления импорта и классы в своем расширении WatchKit:
// ExtensionDelegate.swift
import WatchKit
class ExtensionDelegate: NSObject, WKExtensionDelegate {...}
// InterfaceController.swift
import WatchKit
import Foundation
import SpriteKit
class InterfaceController: WKInterfaceController {...}
// NotificationController.swift
import WatchKit
import Foundation
import UserNotifications
class NotificationController: WKUserNotificationInterfaceController {...}
// ComplicationController.swift
import ClockKit
class ComplicationController: NSObject, CLKComplicationDataSource {...}