dyld-image-loading-performance
dyld-image-loading-performance copied to clipboard
Question Is it possible to merge several frameworks into one?
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?
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 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