mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-19 23:38:41 +00:00
Summary: In an attempt to best other diffing libraries, I noticed that pure insert/delete diffing results would be almost 5x slower than changes between existing arrays. This is pretty much a benchmarking enhancement, but improves diffing performance by ~5x when the from-array or to-array is empty. ``` // OLD only inserts avg: 0.007469, min: 0.006998, max: 0.016550, p50: 0.007254, p75: 0.007712, p90: 0.007899, p95: 0.008345, p99: 0.016550 // NEW avg: 0.001392, min: 0.001256, max: 0.006772, p50: 0.001289, p75: 0.001348, p90: 0.001533, p95: 0.001614, p99: 0.006772 ``` ``` // OLD only deletes avg: 0.005821, min: 0.005669, max: 0.006511, p50: 0.005766, p75: 0.005852, p90: 0.006030, p95: 0.006204, p99: 0.006511 // NEW avg: 0.001184, min: 0.001096, max: 0.001673, p50: 0.001123, p75: 0.001212, p90: 0.001378, p95: 0.001467, p99: 0.001673 ``` Note the average time improvements (seconds). Benchmarking done on a 4s w/ this project: https://pxl.cl/bLBB Reviewed By: manicakes Differential Revision: D6968683 fbshipit-source-id: 0d8e058f0aaa9ce756ca69326527d04504ac6429 |
||
|---|---|---|
| .. | ||
| Common | ||
| Internal | ||
| IGListAdapter.h | ||
| IGListAdapter.m | ||
| IGListAdapterDataSource.h | ||
| IGListAdapterDelegate.h | ||
| IGListAdapterMoveDelegate.h | ||
| IGListAdapterUpdateListener.h | ||
| IGListAdapterUpdater.h | ||
| IGListAdapterUpdater.m | ||
| IGListAdapterUpdaterDelegate.h | ||
| IGListBatchContext.h | ||
| IGListBindable.h | ||
| IGListBindingSectionController.h | ||
| IGListBindingSectionController.m | ||
| IGListBindingSectionControllerDataSource.h | ||
| IGListBindingSectionControllerSelectionDelegate.h | ||
| IGListCollectionContext.h | ||
| IGListCollectionView.h | ||
| IGListCollectionView.m | ||
| IGListCollectionViewDelegateLayout.h | ||
| IGListCollectionViewLayout.h | ||
| IGListCollectionViewLayout.mm | ||
| IGListDisplayDelegate.h | ||
| IGListGenericSectionController.h | ||
| IGListGenericSectionController.m | ||
| IGListKit.h | ||
| IGListReloadDataUpdater.h | ||
| IGListReloadDataUpdater.m | ||
| IGListScrollDelegate.h | ||
| IGListSectionController.h | ||
| IGListSectionController.m | ||
| IGListSingleSectionController.h | ||
| IGListSingleSectionController.m | ||
| IGListStackedSectionController.h | ||
| IGListStackedSectionController.m | ||
| IGListSupplementaryViewSource.h | ||
| IGListTransitionDelegate.h | ||
| IGListUpdatingDelegate.h | ||
| IGListWorkingRangeDelegate.h | ||
| Info.plist | ||