php7快的原因是什么?
本質(zhì)上來說就是對zend 引擎的優(yōu)化,減少內(nèi)存分配次數(shù),多使用棧內(nèi)存,緩存數(shù)組hash值,字符串解析成參數(shù)改為宏展開,使用大塊連續(xù)內(nèi)存代替小塊碎片內(nèi)存等
原因總結(jié):
1、存儲變量的結(jié)構(gòu)體變小,盡量使結(jié)構(gòu)體里成員共用內(nèi)存空間,減少引用,這樣內(nèi)存占用降低,變量的操作速度得到提升。
2、字符串結(jié)構(gòu)體的改變,字符串信息和數(shù)據(jù)本身原來是分成兩個(gè)獨(dú)立內(nèi)存塊存放,php7盡量將它們存入同一塊內(nèi)存,提升了cpu緩存命中率。
3、數(shù)組結(jié)構(gòu)的改變,數(shù)組元素和hash映射表在php5中會存入多個(gè)內(nèi)存塊,php7盡量將它們分配在同一塊內(nèi)存里,降低了內(nèi)存占用、提升了cpu緩存命中率。
4、改進(jìn)了函數(shù)的調(diào)用機(jī)制,通過對參數(shù)傳遞環(huán)節(jié)的優(yōu)化,減少一些指令操作,提高了執(zhí)行效率。