性能提升的原因?
1、存儲變量的結(jié)構(gòu)體變小,盡量使結(jié)構(gòu)體里成員共用內(nèi)存空間,減少引用,這樣內(nèi)存占用降低,變量的操作速度得到提升。
2、字符串結(jié)構(gòu)體的改變,字符串信息和數(shù)據(jù)本身原來是分成兩個獨立內(nèi)存塊存放,php7盡量將它們存入同一塊內(nèi)存,提升了cpu緩存命中率。
3、數(shù)組結(jié)構(gòu)的改變,數(shù)組元素和hash映射表在php5中會存入多個內(nèi)存塊,php7盡量將它們分配在同一塊內(nèi)存里,降低了內(nèi)存占用、提升了cpu緩存命中率。
4、改進了函數(shù)的調(diào)用機制,通過對參數(shù)傳遞環(huán)節(jié)的優(yōu)化,減少一些指令操作,提高了執(zhí)行效率。
為什么PHP7的性能可以提高這么多?
1. JIT
2. Zval的改變
3. 內(nèi)部類型zend_string
4. PHP數(shù)組的變化(HashTable和Zend Array)
5. 函數(shù)調(diào)用機制(Function Calling Convention)
6. 通過宏定義和內(nèi)聯(lián)函數(shù)(inline),讓編譯器提前完成部分工作
為什么PHP7的在實際的業(yè)務(wù)性能提高才30%左右?
實際的業(yè)務(wù)不一定有很復(fù)雜的計算邏輯
實際的業(yè)務(wù)會用到Redis 和MYSQL,網(wǎng)絡(luò)和IO的瓶頸 影響了PHP7的整體性能
HTTPS的性能問題 限制了PHP7的能力
推薦:《PHP7》
文章名稱:你知道是什么原因?qū)е聀hp7比5快嗎?
文章路徑:http://weahome.cn/article/cpgdhg.html