Почему процессор простаивает в течение 2,5 секунд во время запуска моего приложения? - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь сократить время запуска приложения 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 {...}
...