为了账号安全,请及时绑定邮箱和手机立即绑定

什么是packed array,什么是hash array,区别是什么?

什么是packed array,什么是hash array,区别是什么?

正在回答

1 回答

可以这么简单的理解:

1、对于key是数字的,就不用涉及到hash运算,此时使用的是packed array; 当然如果key的值较大,或者间隔较大,还是会退化成hash array。  packed array 能够节省索引部分占用的内存,是一个性能上的优化;

2、对于key是非数字的,必须用hash算法进行计算出来它所在bucket的位置,那么索引数组是必不可少的,只能是hash array。

这是底层的实现,对于我们写php代码,需要关注的点是对于业务中的大数组,有没有可能设计一些算法,让它满足packed array的性质,这样可以节省内存; 另外一方面就是要关注在大数组的情况下,可能会发声packed array向 hash array的转变,这个耗时还是较大的,需要尽量避免这种情况。  当然这两种情况都是针对“大”数组,小数组的情况下,其实差距没那么大。

4 回复 有任何疑惑可以回复我~
#1

慕斯卡0281576

所以如果间隔不大一步步升上去就不会变成hash array是吗
2021-06-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

什么是packed array,什么是hash array,区别是什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信