課程
/后端開發(fā)
/PHP
/PHP7的基本變量
什么是packed array,什么是hash array,區(qū)別是什么?
2018-12-19
源自:PHP7的基本變量 5-2
正在回答
可以這么簡(jiǎn)單的理解:
1、對(duì)于key是數(shù)字的,就不用涉及到hash運(yùn)算,此時(shí)使用的是packed array; 當(dāng)然如果key的值較大,或者間隔較大,還是會(huì)退化成hash array。? packed array 能夠節(jié)省索引部分占用的內(nèi)存,是一個(gè)性能上的優(yōu)化;
2、對(duì)于key是非數(shù)字的,必須用hash算法進(jìn)行計(jì)算出來它所在bucket的位置,那么索引數(shù)組是必不可少的,只能是hash array。
這是底層的實(shí)現(xiàn),對(duì)于我們寫php代碼,需要關(guān)注的點(diǎn)是對(duì)于業(yè)務(wù)中的大數(shù)組,有沒有可能設(shè)計(jì)一些算法,讓它滿足packed array的性質(zhì),這樣可以節(jié)省內(nèi)存; 另外一方面就是要關(guān)注在大數(shù)組的情況下,可能會(huì)發(fā)聲packed array向 hash array的轉(zhuǎn)變,這個(gè)耗時(shí)還是較大的,需要盡量避免這種情況。? 當(dāng)然這兩種情況都是針對(duì)“大”數(shù)組,小數(shù)組的情況下,其實(shí)差距沒那么大。
慕斯卡0281576
舉報(bào)
學(xué)習(xí)PHP7基本變量,掌握PHP7的新特性
1 回答packed array不用的兩位index 數(shù)組 為什么不能省略?
2 回答數(shù)組中的鍵為字符串2會(huì)變?yōu)閔ash array嗎
2 回答第6節(jié)中變成hash array之后,對(duì)于字符串‘abc’的bucket來說,‘key’和‘h’的值那個(gè)是‘2’?
1 回答什么是大小端?
1 回答十六個(gè)字節(jié)表示之后為什么不是0x00呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-12-19
可以這么簡(jiǎn)單的理解:
1、對(duì)于key是數(shù)字的,就不用涉及到hash運(yùn)算,此時(shí)使用的是packed array; 當(dāng)然如果key的值較大,或者間隔較大,還是會(huì)退化成hash array。? packed array 能夠節(jié)省索引部分占用的內(nèi)存,是一個(gè)性能上的優(yōu)化;
2、對(duì)于key是非數(shù)字的,必須用hash算法進(jìn)行計(jì)算出來它所在bucket的位置,那么索引數(shù)組是必不可少的,只能是hash array。
這是底層的實(shí)現(xiàn),對(duì)于我們寫php代碼,需要關(guān)注的點(diǎn)是對(duì)于業(yè)務(wù)中的大數(shù)組,有沒有可能設(shè)計(jì)一些算法,讓它滿足packed array的性質(zhì),這樣可以節(jié)省內(nèi)存; 另外一方面就是要關(guān)注在大數(shù)組的情況下,可能會(huì)發(fā)聲packed array向 hash array的轉(zhuǎn)變,這個(gè)耗時(shí)還是較大的,需要盡量避免這種情況。? 當(dāng)然這兩種情況都是針對(duì)“大”數(shù)組,小數(shù)組的情況下,其實(shí)差距沒那么大。