Edited at

iOSアプリ起動時のダイナミックリンクライブラリの読み込み時間を調べる

More than 3 years have passed since last update.

起動時のダイナミックリンクライブラリの読み込み時間を調べてみました。

XcodeでSchemeのArgumentsのEnvironment VariablesにDYLD_PRINT_STATISTICSとDYLD_PRINT_APISを追加します。

Voila_Capture 2016-06-17_02-15-09_午後.png

アプリを実行するとログに以下のようなロードやイニシャライズの時間が表示されます。

total time: 3.4 seconds (100.0%)

total images loaded: 337 (264 from dyld shared cache)
total segments mapped: 235, into 16189 pages with 3084 pages pre-fetched
total images loading time: 2.8 seconds (83.3%)
total dtrace DOF registration time: 0.11 milliseconds (0.0%)
total rebase fixups: 246,514
total rebase fixups time: 80.71 milliseconds (2.3%)
total binding fixups: 311,397
total binding fixups time: 112.33 milliseconds (3.2%)
total weak binding fixups time: 3.30 milliseconds (0.0%)
total bindings lazily fixed up: 0 of 0
total initializer time: 378.52 milliseconds (10.9%)
libSystem.B.dylib : 94.67 milliseconds (2.7%)
libBacktraceRecording.dylib : 3.14 milliseconds (0.0%)
libc++.1.dylib : 0.08 milliseconds (0.0%)
libobjc.A.dylib : 0.04 milliseconds (0.0%)
CoreFoundation : 0.85 milliseconds (0.0%)
libGLImage.dylib : 0.14 milliseconds (0.0%)
vImage : 0.01 milliseconds (0.0%)
libFosl_dynamic.dylib : 0.23 milliseconds (0.0%)
CoreImage : 0.01 milliseconds (0.0%)
libglInterpose.dylib : 176.12 milliseconds (5.1%)
CoreTelephony : 0.01 milliseconds (0.0%)
Flurry_iOS_SDK : 1.94 milliseconds (0.0%)
libswiftCore.dylib : 0.02 milliseconds (0.0%)
Realm : 5.66 milliseconds (0.1%)
AppName : 16.54 milliseconds (0.4%)