QuickList的出现是为了解决ZipList所存在的一些问题
ZipList所申请的是连续的内存空间,如果ZipList里面存放的数据过多,就需要一块很大的连续内存,系统需要在物理内存中找到足够大的连续空闲块,大块内存的分配和释放可能导致内存碎片化问题。即使系统中总体上有足够的空闲内存,但这些内存可能分布在不同的位置,形成了碎片。如果没有足够大的连续空间来满足大块内存的需求,系统可能需要进行内存整理操作,以便在物理内存中找到足够大的连续块。这会引入额外的开销。
限制了ZipList的长度和entry的数量后,要是要存储大量数据,超过了限制,怎么办
数据拆分后比较分散,不方便管理和查找,这多个ZipList如何建立联系?
QuickList的每个节点是一个ZipList
?
5.总结:QuickList结合了链表和ZipList的优点
链表的存储空间十分大,因为地址不需要连续,但缺点是会产生很多内存碎片
而ZipList内存占用少,产生的内存碎片少,缺点是存储量少