workerman性能怎么樣

workerman性能怎么樣

為什么workerman擁有卓越的性能

簡單的進程通訊模型使得workerman相比其它復雜的進程模型的軟件更高效。 ? ?(推薦學習: workerman教程

避免讀取磁盤和反復編譯

workerman運行過程中,單個進程生命周期內只要PHP文件被載入編譯過一次,便會常駐內存,不會再去從磁盤讀取或者再去編譯。

workerman省去了重復的請求初始化、創建執行環境、詞法解析、語法解析、編譯生成opcode以及請求關閉等諸多耗時的步驟。

實際上workerman運行起來后便幾乎沒有磁盤IO及PHP文件編譯開銷,剩下的只是簡單的計算過程,這使得workerman運行飛快。

數據或者資源可以全局共享

workerman中多個請求是可以共享數據或者資源的,當前請求產生的全局變量或者類的靜態成員在下一次請求中仍然有效。 這對于減少開銷,提高運行效率非常有用。

例如業務只要初始化一次數據庫連接,那么全局都可以共享這個連接,這實現了真正意義上的數據庫長連接。 從而不必每次用戶請求都去創建新的連接,避免了連接時三次握手、連接后權限驗證以及斷開連接時四次揮手等耗時的交互過程。

不僅數據庫,像redis、 memcache等同樣有效。少了這些開銷和網絡交互,使得workerman運行更快。

沒有多余的網絡開銷

傳統PHP應用程序需要借助apache、nginx等容器才能對外提供網絡服務,這就導致多了一層apache、nginx等容器到PHP進程的數據傳輸開銷。?

并且由于運行了apache或者nginx容器,這將進一步消耗服務器的資源。 workerman便沒有這部分開銷,這是由于workerman自身便是一個服務器容器具有PHP進程管理以及網絡通訊功能, 完全不依賴于apache、nginx、php-fpm等這些容器便可以獨立運行,所以性能更高。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享