首先我們要知道Swoole是一個網(wǎng)絡(luò)應(yīng)用的開發(fā)工具,它支持 Http、TCP、UDP、WebSocket。
使用理由如下:
1、常駐內(nèi)存,避免重復(fù)加載帶來的性能損耗,提升海量性能。
2、協(xié)程異步,提高對 I/O 密集型場景并發(fā)處理能力(如:微信開發(fā)、支付、登錄等)。
3、方便地開發(fā) Http、WebSocket、TCP、UDP 等應(yīng)用,可以與硬件通信。
4、PHP 高性能微服務(wù)架構(gòu)成為現(xiàn)實。
(免費學(xué)習(xí)視頻教程分享:php視頻教程)
常駐內(nèi)存
目前傳統(tǒng) PHP框架,在處理每個請求之前,都要做一遍加載框架文件、配置的操作。這可能已經(jīng)成為性能問題的一大原因,而使用 Swoole 則沒有這個問題,一次加載多次使用。
協(xié)程
說到協(xié)程,就得先簡單說說進程和線程,眾所周知進程是很占用資源的,為了處理請求大量創(chuàng)建進程肯定是得不償失的。而多線程應(yīng)用就比較多了,在 CPU 層面有幾個核心就會執(zhí)行幾個任務(wù),線程一旦創(chuàng)建的多了,就會有線程調(diào)度的損耗。
協(xié)程是在單線程基礎(chǔ)上實現(xiàn)的,它可以最大限度利用 CPU 資源,而不會在等待 I/O 時白白浪費。當然,協(xié)程數(shù)越多占用的內(nèi)存也就越多,不過這個是可以接受的,相比進程和線程,占用的資源是相對較少的。
使用協(xié)程時,遇到讀寫文件、請求接口等場景,會自動掛起協(xié)程,把 CPU 讓給其它協(xié)程執(zhí)行任務(wù),這樣可以提升單線程的 CPU 資源利用率,減少浪費,從而提高性能。
協(xié)程代碼示例:
相關(guān)文章教程推薦:php教程