為什麼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等這些容器便可以獨立運行,所以性能更高。
以上是workerman性能怎麼樣的詳細內容。更多資訊請關注PHP中文網其他相關文章!