Charts
Charts copied to clipboard
Improves build time by 30%, resolving issue 5123 "Charts Framework takes a long time to build"
Resolves issue #5123 "Charts framework takes a long time to build" (https://github.com/danielgindi/Charts/issues/5123) by implementing the recommendations listed at the end of the issue. These changes improved the clean full Debug build time by 30%.
Issue Link :link:
Charts framework takes a long time to build
Goals :soccer:
Improves build times of the Charts framework target for both clean and incremental Debug builds, enabling more parallelization during building.
Implementation Details :construction:
This PR makes the following changes:
- Sets
Eager Linkingbuild setting toYesforChartsframework target - Sets
Enable Module Verifierbuild setting toNoforDebugbuilds - Sets
Compilation ModetoIncrementalforDebugbuilds - Added
-Xfrontend -warn-long-expression-type-checking=50(or perhaps use100) toOTHER_SWIFT_FLAGSso the Swift compiler will emit warnings for expressions that take a long time to type-check. The number after the = is the number of milliseconds threshold, above which warnings will be emitted. - Refactored the slow type-checking hotspots identified above in
ChartAnimationEasing.swift, breaking out expressions which are slow to type-check into separate, quicker-to-type-check expressions.
Testing Details :mag:
To test/verify the build time improvement, use these simple steps -- first with the existing code, and then again using this PR branch/commit:
- Quit Xcode
- Delete DerivedData (
rm -rf $HOME/Library/Developer/Xcode/DerivedData) - Open Xcode
- Open Charts.xcworkspace
- Hit Command-B to make a debug build
- Look at the total time at the end of your build log