image.png
    image.png
    PHP5的数组设计在时间效率和空间效率上的问题:
    1.每一个bucket都需要一次内存分配
    2.大部分场景,key-value中的value都是zval。每个 bucket 需要维护指向 zval 的指针 pDataPtr 以及指向 pDataPtr 的 pData 指针,空间效率不是很高
    3.为了保证数组的两个语义,每一个bucket需要维护四个指向bucket的指针。会占用额外的内存,而且由于bucket内存分配是随机的,导致了CPU的cache命中率并不高,这样在遍历HashTable的时候并没有很高的性能。