Saurabh 😎

WWDC 2017: App Startup Time: Past, Present, and Future

Terminology:
Startup time = everything before main()
Launch closure = all info necessary to launch an app

dyld history

dyld 1.0 (1996-2004)

dyld 2.0 (2004-2007)

dyld 2.x (2007-2017)

Today: dyld 3 (2017)

Complete rethink of dynamic linking
Starting with Apple's system apps, will eventually be used for 3rd party apps too

Most of dyld is now a daemon, so easier for the dyld team to test (previously, was very hard to test since XCTest itself relied on dyld)

3 components:

Preparing for dyld 3: