App Startup Time: Past, Present, and Future

Description: Learn about the dyld dynamic linker used on Apple platforms, how it's changed over the years, and where it's headed next. Find out how improved tooling makes it easier to optimize your app's launch time, and see how new changes coming in dyld will bring even further launch time improvements.

Startup time

Time spent before the app main() is executed

Launch Closure

All of the information necessary to launch an application (what dylibs the app uses, what the offsets in them are for various symbols, where their code signatures are).


  • Embed fewer dylibs
  • Declare fewer classes/methods
  • Use fewer initializers

Use the Static Initializer tracer in instruments to profile your startup time

The session continues with a detailed history of Dyld, which is awesome and way too long to write here. Just watch the session or read its transcript.

Missing anything? Corrections? Contributions are welcome 😃


Written by

Federico Zanetello

Federico Zanetello

iOS Engineer with strong passion for Swift, minimalism, and design. When he’s not busy automating things, he can be found writing at FIVE STARS and/or playing with the latest shiny toys.