PHP本身很快
PHP往往比Python或者Ruby快個(gè)幾倍,PHP數(shù)組是C寫的,還經(jīng)過(guò)了十幾年的優(yōu)化,PHP常用函數(shù)也都是C寫的,操作數(shù)組或者調(diào)用這些標(biāo)準(zhǔn)庫(kù)函數(shù)的時(shí)候,除了調(diào)用開(kāi)銷外,執(zhí)行函數(shù)本身是就是C的速度。 (推薦學(xué)習(xí):PHP視頻教程)
PHP框架很薄
很多人完全不用框架,從FPM進(jìn)來(lái)直奔主題,沒(méi)有抽象封裝帶來(lái)的多余動(dòng)作,比如說(shuō)
URL路由在Nginx中已經(jīng)簡(jiǎn)單處理好了,也不用捕獲請(qǐng)求路徑中的變量。
不需要session的時(shí)候,它不會(huì)自動(dòng)給你獲取session,session是很重的。
不用做身份認(rèn)證的時(shí)候,也不需要框架里常見(jiàn)的auth那部分處理流程。
沒(méi)有層層的beforeXXX和afterXXX,跳過(guò)了那一大堆HOOK方法。
以上框架常用功能,每一樣都有厚重的框架自身的初始化操作,一旦用了,就會(huì)嚴(yán)重降低性能。現(xiàn)在比較主流的PHP框架,如Laravel和Codeigniter就是典型代表,性能大致是這樣的,一個(gè)簡(jiǎn)單的hello world,每個(gè)CPU核心能負(fù)擔(dān)的QPS
下一代PHP運(yùn)行方式
還有不到10%的PHP用戶,在特別需要性能又必須用PHP的時(shí)候,選擇了Swoole,它不同于FPM,swoole本質(zhì)是CLI運(yùn)行,比較耗時(shí)的協(xié)議解析和常規(guī)處理,都是C寫的擴(kuò)展里做好了。
Swoole在繼承了PHP7的高性能的同時(shí),還把FPM模式下每個(gè)請(qǐng)求框架要重新初始化的缺陷徹底解決掉了。然后選擇Swoole的同時(shí),仍然可以保持只用薄框架甚至不用框架,那速度是不是要起飛了?
在Swoole這種運(yùn)行模式下,你可以把PHP看作是一個(gè)C寫的應(yīng)用帶的配置文件,有什么理由比那些競(jìng)爭(zhēng)對(duì)手慢呢?應(yīng)該比那些對(duì)手們更快才對(duì)。如果給Laravel適配上Swoole,那絕對(duì)是另一番景象。
從開(kāi)發(fā)效率上看,我個(gè)人身上,PHP大概比Java快10%左右吧,寫的時(shí)候是PHP快,但是改起來(lái)卻稍稍費(fèi)事一些,要理清嵌套好幾層的數(shù)組的結(jié)構(gòu),不如Java里直接跳轉(zhuǎn)到明確的類型定義來(lái)的方便。加上編譯器的存在,又消滅了一些低級(jí)bug。Java的標(biāo)準(zhǔn)庫(kù)設(shè)施,文檔和參考資料要遠(yuǎn)多于Swoole,這方面又縮小了開(kāi)發(fā)效率上的差距。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com