十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要介紹workerman性能好不好,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
為什么workerman擁有卓越的性能
簡(jiǎn)單的進(jìn)程通訊模型使得workerman相比其它復(fù)雜的進(jìn)程模型的軟件更高效。
避免讀取磁盤和反復(fù)編譯
workerman運(yùn)行過程中,單個(gè)進(jìn)程生命周期內(nèi)只要PHP文件被載入編譯過一次,便會(huì)常駐內(nèi)存,不會(huì)再去從磁盤讀取或者再去編譯。
workerman省去了重復(fù)的請(qǐng)求初始化、創(chuàng)建執(zhí)行環(huán)境、詞法解析、語法解析、編譯生成opcode以及請(qǐng)求關(guān)閉等諸多耗時(shí)的步驟。
實(shí)際上workerman運(yùn)行起來后便幾乎沒有磁盤IO及PHP文件編譯開銷,剩下的只是簡(jiǎn)單的計(jì)算過程,這使得workerman運(yùn)行飛快。
數(shù)據(jù)或者資源可以全局共享
workerman中多個(gè)請(qǐng)求是可以共享數(shù)據(jù)或者資源的,當(dāng)前請(qǐng)求產(chǎn)生的全局變量或者類的靜態(tài)成員在下一次請(qǐng)求中仍然有效。 這對(duì)于減少開銷,提高運(yùn)行效率非常有用。
例如業(yè)務(wù)只要初始化一次數(shù)據(jù)庫連接,那么全局都可以共享這個(gè)連接,這實(shí)現(xiàn)了真正意義上的數(shù)據(jù)庫長(zhǎng)連接。 從而不必每次用戶請(qǐng)求都去創(chuàng)建新的連接,避免了連接時(shí)三次握手、連接后權(quán)限驗(yàn)證以及斷開連接時(shí)四次揮手等耗時(shí)的交互過程。
不僅數(shù)據(jù)庫,像redis、 memcache等同樣有效。少了這些開銷和網(wǎng)絡(luò)交互,使得workerman運(yùn)行更快。
沒有多余的網(wǎng)絡(luò)開銷
傳統(tǒng)PHP應(yīng)用程序需要借助apache、nginx等容器才能對(duì)外提供網(wǎng)絡(luò)服務(wù),這就導(dǎo)致多了一層apache、nginx等容器到PHP進(jìn)程的數(shù)據(jù)傳輸開銷。
并且由于運(yùn)行了apache或者nginx容器,這將進(jìn)一步消耗服務(wù)器的資源。 workerman便沒有這部分開銷,這是由于workerman自身便是一個(gè)服務(wù)器容器具有PHP進(jìn)程管理以及網(wǎng)絡(luò)通訊功能, 完全不依賴于apache、nginx、php-fpm等這些容器便可以獨(dú)立運(yùn)行,所以性能更高。
以上是“workerman性能好不好”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!