dyld-image-loading-performance icon indicating copy to clipboard operation
dyld-image-loading-performance copied to clipboard

Question Is it possible to merge several frameworks into one?

Open hei9gag opened this issue 8 years ago • 2 comments

We have also face this problem. The total image loading time takes about 1 seconds to load and affect our cold start time.

According to WWDC 2016 optimizing App Startup time https://developer.apple.com/videos/play/wwdc2016/406/

We can optimize the app start time by merging several frameworks into one. Have you tired merging several frameworks into one? Does it really improve the startup time?

hei9gag avatar Aug 10 '16 07:08 hei9gag

What this repo describes is merging all frameworks into none, because it copies all of them directly inside your app binary. There shouldn't be a problem with merging into a single framework instead and linking against it. I'd expect the performance to still improve, although I haven't tried it before.

stepanhruda avatar Aug 10 '16 12:08 stepanhruda

@stepanhruda do you have any ideas how to reduce the total images loading time? I have 64 items in Link Binary with Libraries (1 dynamic library, others are system libraries and static frameworks). But it took 1.3 seconds in images loading time in iPhone 5S

total time: 2.2 seconds (100.0%) total images loaded: 323 (309 from dyld shared cache) total segments mapped: 41, into 2315 pages with 136 pages pre-fetched total images loading time: 1.3 seconds (60.8%) total dtrace DOF registration time: 0.17 milliseconds (0.0%) total rebase fixups: 276,863 total rebase fixups time: 90.22 milliseconds (3.9%) total binding fixups: 386,278 total binding fixups time: 308.50 milliseconds (13.6%) total weak binding fixups time: 1.34 milliseconds (0.0%) total bindings lazily fixed up: 0 of 0 total time in initializers and ObjC setup: 486.74 milliseconds (21.5%) libSystem.B.dylib : 80.18 milliseconds (3.5%) libBacktraceRecording.dylib : 15.14 milliseconds (0.6%) libc++.1.dylib : 0.08 milliseconds (0.0%) CoreFoundation : 1.26 milliseconds (0.0%) CFNetwork : 0.01 milliseconds (0.0%) vImage : 0.01 milliseconds (0.0%) libGLImage.dylib : 0.20 milliseconds (0.0%) QuartzCore : 0.01 milliseconds (0.0%) libViewDebuggerSupport.dylib : 0.08 milliseconds (0.0%) libglInterpose.dylib : 218.70 milliseconds (9.6%) libTelephonyUtilDynamic.dylib : 0.00 milliseconds (0.0%) CoreTelephony : 0.03 milliseconds (0.0%) pop : 0.07 milliseconds (0.0%) libswiftCore.dylib : 0.01 milliseconds (0.0%) App STG : 165.22 milliseconds (7.3%) total symbol trie searches: 902568 total symbol table binary searches: 0 total images defining weak symbols: 28 total images using weak symbols: 68

hei9gag avatar Aug 11 '16 08:08 hei9gag