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.
Time spent before the app
main() is executed
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.