~/talk

Reducing App Launch Times: From Diagnostics to Optimization

Talkat iOS Conf SG 2025 · 2025-01-15..01-17· [ios]
slides:none on file

Breaks down exact instrumentation and fixes: use Instruments’ App Launch template, OS signpost, MetricKit and sysctl to capture pre-main start time, and an injected timing tool that hooks objc_msgSend (fishhook + assembly) and a Swift function injector to log every function call. Shows reducing a demo app launch from over 10 seconds to about 1 second by moving IO off the main thread, lazy UI, merging dynamic libs (build option merge binary automatic), bypassing homepage on deep links, and using Swift concurrency task groups with prioritized background work.

AI-written summary · about

  1. 0:00App launch times intro
  2. 1:06Pre-main vs post-main phases
  3. 2:34Measuring launch with Instruments
  4. 4:21Pre-main time with System Control
  5. 6:30MetricKit for data collection
  6. 7:36Automated time measurement
  7. 9:46Hooking Objective-C functions
  8. 10:30Swift function timing
  9. 11:36Common launch issues
  10. 13:22Launch optimization case study
  11. 14:07Optimizing launch path
  12. 16:17Multi-threaded startup tasks
  13. 18:28Reducing app size
  14. 20:56Detecting unused classes and functions
  15. 22:06Summary and tips
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.