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