layoutBox / LayoutFrameworkBenchmark

Benchmark the performances of various Swift layout frameworks (autolayout, UIStackView, PinLayout, LayoutKit, FlexLayout, Yoga, ...)
BSD 3-Clause "New" or "Revised" License
433 stars 35 forks source link

Add iOS 12 Auto Layout comparison #10

Open Linslav opened 6 years ago

Linslav commented 6 years ago

Apple claimed that they improved Auto Layout performance on iOS 12, would be interesting to see the difference.

weibel commented 6 years ago

I second this. Apple stated at WWDC that the run time complexity for Auto Layout had been decreased from exponential to linear in iOS12.

arslaman commented 1 year ago

I've just run the project on iPhone 13 Pro Max (iOS 16.3) and found out that on average Autolayout is 3-3.2x worse than the competitions and StackView is about 3.5-4x worse:

Auto Layout 0.0097,0.0154,0.0212,0.0273,0.0344,0.0405,0.0449,0.0502,0.0558,0.0622,
FlexLayout 1.3  0.0037,0.0056,0.0072,0.0090,0.0109,0.0122,0.0141,0.0157,0.0173,0.0191,
LayoutKit 10.1  0.0032,0.0044,0.0057,0.0069,0.0082,0.0093,0.0106,0.0117,0.0129,0.0141,
Manual Layout   0.0036,0.0054,0.0072,0.0089,0.0106,0.0124,0.0142,0.0161,0.0178,0.0197,
NKFrameLayoutKit 2.5    0.0033,0.0044,0.0055,0.0066,0.0076,0.0088,0.0099,0.0110,0.0121,0.0133,
PinLayout 1.10  0.0032,0.0047,0.0062,0.0077,0.0093,0.0108,0.0124,0.0139,0.0154,0.0171,
Texture 3.1 0.0017,0.0032,0.0046,0.0063,0.0075,0.0088,0.0103,0.0116,0.0129,0.0142,
UIStackView 0.0121,0.0190,0.0263,0.0331,0.0402,0.0472,0.0540,0.0608,0.0681,0.0753,
Completed!

Note that I had to exclude NotAutoLayout because it was deprecated and contains build issues.