IGListKit/Source/IGListDiffKit
Maxime Ollivier 58476fd09c adaptive update coalescing
Summary:
Currently, we always call `dispatch_async` to coalesce updates, which slowing down the first update. Lets try a compromise where we don't delay the first update, but enforce a max update per time.

For example, lets say `minInterval = 10ms`,  `intervalIncrement = 10 ms`, and `maxInterval = 30 ms` ...
* At 0ms, the first `-queueUpdate` is called, which calls `_performUpdate` synchronously
* At 2ms, the update is done
* At 5ms, a second `-queueUpdate` is called. Since it's been less than 10ms, we wait 5ms and increase the next window to 20ms.
* At 10ms, the second `_performUpdate` is called.

So effectively, we speed up the first `-queueUpdate`, but enforce a max update per ms. I'm not convinced we really need the increment, but I want to see what happens IRL.

Differential Revision: D60691863

fbshipit-source-id: 85faf2dbc38f754976843fff63e6eada4972581e
2025-12-10 17:18:11 +09:00
..
Internal Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListAssert.h Fix IGWarnAssert macro to remove unneeded condition parameter 2025-12-10 17:18:10 +09:00
IGListBatchUpdateData.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListBatchUpdateData.mm Fix unsigned integer overflow (#1299) 2025-12-10 17:18:10 +09:00
IGListCompatibility.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListDiff.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListDiff.mm Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListDiffable.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListDiffKit.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListExperiments.h adaptive update coalescing 2025-12-10 17:18:11 +09:00
IGListIndexPathResult.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListIndexPathResult.m Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListIndexSetResult.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListIndexSetResult.m Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListMacros.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListMoveIndex.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListMoveIndex.m Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListMoveIndexPath.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
IGListMoveIndexPath.m Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
NSNumber+IGListDiffable.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
NSNumber+IGListDiffable.m Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
NSString+IGListDiffable.h Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00
NSString+IGListDiffable.m Standarize the copyright notice in all source files 2025-12-10 17:18:09 +09:00