It might be worth checking how many elements are in the list, that is, if we don't find at least a few thousand elements, it's not worth doing the work.

Imagine a page with 1,000 rows inserted into the middle, and one row inserted at the end/beginning, we're going to do this work for no reason.

We could maybe add a insert/append counter pair to the page-modify structure, updated by the serialization function, a couple of 2B counters would tell us if we can gain by splitting this page in-memory.