我正在尝试减少Apple Watch应用程序的启动时间。使用Instruments中的Time Profiler在物理设备(系列2)上进行测试,我可以看到大约需要5秒钟才能达到前台状态。在这段时间内,CPU显然处于空闲状态2.5秒钟。请参见此screenshot from Time Profiler中的时间轴间隔,介于0.5和3秒之间。 这是怎么回事?我可以删除或缩短此空闲时间以使我的应用启动更快吗?
我的Swift代码中首先运行的部分-ExtensionDelegate.init()-在4.5秒时执行,因此问题必须与某些较早的初始化或库加载有关。以下屏幕截图显示了在空闲间隔之前和之后进行哪些系统调用。
System calls before idle interval
System calls just after idle interval
我尝试禁用应用程序的以下部分,但未看到任何重大改进:
在模拟器中运行时,问题消失了。该应用程序将在约1.5秒内达到“前台”状态,并且没有CPU空闲时间。
我在WatchKit Extension中使用以下导入声明和类:
// 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 {...}