workerman和swoole性能誰更好?如何選擇?

          來源:php中文網 | 2022-12-01 09:52:50 |

          workerman 對比 swoole 實際開發項目中,你會選擇哪個?對于新手學哪個較好,有什么建議嗎?

          網上有評論說swoole性能比workerman高不少,真的是這樣嗎?

          我們先來看下各自介紹:


          (相關資料圖)

          workerman:開源高性能PHP應用容器( github 10.2k)

          workerman 是純php寫的網絡框架,支持高并發,超高穩定性,它大大突破了傳統PHP應用范圍,被廣泛的用于即時通訊、APP開發、小程序開發、聊天室、手游服務端、網絡游戲、硬件通訊、車聯網、智能家居、物聯網等領域的開發。

          支持TCP長連接,支持Websocket、HTTP等協議,支持自定義協議,擁有異步Mysql、異步Redis、異步Http、MQTT物聯網客戶端、異步消息隊列等眾多高性能組件。

          Swoole:PHP 協程框架(github 17.6k)

          swoole是c/c++寫的網絡通訊擴展,Swoole 使 PHP 開發人員可以編寫高性能高并發的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服務,讓 PHP 不再局限于 Web 領域。

          Swoole 可以廣泛應用于互聯網、移動通信、云計算、 網絡游戲、物聯網(IOT)、車聯網、智能家居等領域。使用 PHP + Swoole 可以使企業 IT 研發團隊的效率大大提升,更加專注于開發創新產品。

          兩者功能類似

          那究竟哪個更好一些?我們該如何選擇呢?

          我們一起來聽聽PHPer的使用感受和看法

          一:學習成本

          首先我們闡述下php中文網的觀點:

          對于新手,我們更傾向于推薦workerman:簡單,易用,擴展性好,可快速上手!php 語言的價值不就是簡單易用嗎?

          目前關于workerman最新的課程全網很少,所以php中文網近期精心錄制了一套:PHP workerman 基礎到實戰課程,在今天上線了!

          希望能夠幫助到同學們,提升自己的技能!

          課程名稱:

          《PHP Workerman+ThinkPHP6 即時通訊聊天系統》

          (ThinkPHP6+Workerman/websocket)

          本課程是基于php workerman創建websocket服務開發的實時web聊天系統,課程內容主要包括:

          1、websoket通信原理以及與http的關系

          2、workerman搭建websoket服務

          3、QQ群聊原理與實現

          4、Workerman消息推送與定時器

          5、一對一私聊與客服隨機分配

          6、客服后臺獲取在線客戶列表等

          7、聊天消息存儲等內容。

          感興趣的同學,趕緊上車,鎖定上新活動價!

          限時折扣活動:原價¥399元,限時折扣價¥189元,12.8號截止!

          全部課程預計12.8號之前更新完成,屆時價格會有一定幅度上調

          開通地址↓↓↓https://www.php.cn/course/1475.html

          (課程咨詢+課件資料領取)

          網友們觀點:

          網友評價1:

          如果你之前沒有過網絡編程或多進程開發經驗的話,我的建議是你先從workerman入手,畢竟workerman是純PHP代碼實現的,你在深入理解其原理和處理問題時不會有太大的障礙。

          通過對workerman的深入學習,你可以學習到網絡編程相關的基礎知識,這種程序是如何設計實現的,當中需要注意哪些細節。你還可以學習到如何開發多進程程序,進程間如何管理和通信。

          當你這些了解清楚后,你再過渡到swoole會覺得門檻沒有那么高,如果你直接上手就swoole的話,至少進程間的管理和通信都需要你自己去實現,你可能連思路都沒有。

          由淺入深,先從基礎開始,再向高級進階。

          網友評價2:

          swoole 是作為 php 的擴展,不依賴其他擴展,底層是 c,程序中直接調用,性能較高。workman 是用原生 php,依賴其他擴展,需要下載源碼包。

          前者可以理解為 swoole 是提供給 php 的 api ,原生度比較高,所以沒有封裝實踐中的 業務邏輯,需要自己開發。后者對某種業務需求有封裝,更容易上手。

          本人曾經學習 swoole 個把月,感覺比較難駕馭,需要掌握比較多的基礎知識,實際工作中運用較少,但是感覺值得學習。

          總之,用哪個看用來做什么,大眾需求, workman 可能開發成本更低,有些特定需求,也可以研究研究 swoole。

          網友評價3:

          推薦 workerman!swoole 那套直接 c 拓展的不適合進階新手,新手要的是漸進式,穩定性,循序漸進,先掌握一個范式,再一步一步來。

          workerman 也出了官方 web 框架 webman,壓測排名在 swoole 之上,毫不夸張的說,workerman 目前是最成熟,成本最低的 PHP 解決方案,門檻還低。

          網友評價4:

          swoole是由C語言開發的php擴展類,就性能而言swoole具有優勢,對PHP程序員有一定的要求,了解底層通信服務開發,需要學習的知識比較多,swoole一般適合老手開發。workerman純php開發框架,很容易上手。號稱只要你會php,你就使用它開發socket應用服務。

          建議先學習workerman,在學習swoole。

          網友評價5:

          workerman是純PHP實現的常駐內存框架,同步阻塞模式,先學習這個方便對常駐內存模式有一定的了解,對內存泄露有一定的了解。

          workerman熟悉后再來學習swoole,swoole除了常駐內存,還有就是協程,這個在傳統開發模式中是不存在的。協程類似線程,開發過程中需要主要各個協程中間的數據之間的操作問題。

          二:實際應用

          網友評價1:

          我的一個開源項目用的就是 workerman 項目查看,依賴的環境比較少,開發難度小。如果不是上萬的并發建議 workerman。但是我的經驗表明 95% 的項目都不會有上萬的并發。初學者我也建議用 workerman。swoole 你也可以同時學習,畢竟協程更節省硬件資源。還有就是 workerman 的作者超級有耐心回復各種問題,從來沒有見過如此熱心的

          網友評價2:

          swoole 是擴展,在使用 workerman 的同時,若你需要用到 swoole 的東西,同樣也可以使用,而且從應用角度來說,我更喜歡 workerman gateworker。這些能直接解決很多問題,避免從基礎進行研究

          網友評價3:

          workerman 更簡單穩定,考慮了很久還是用workerman , swoole目前太亂了,生產環境穩定畢竟用的php原生東西 swoole玩了一段時間 坑太多了。

          網友評價4:

          Swoole的部署折騰了我一個禮拜,終于能跑通了,再想想還要很多第三方類庫和擴展要繼續折騰,還是算了。

          Gatewayworker直接用XFTP工具把文件夾拖進去,然后start就好了,省心多了。

          對于我這種小白來說,不考慮什么集群,什么上千萬的并發,什么容器,我選Gatewaywroker。

          網友評價5:

          個人覺得swoole和workerman都能解決高并發io問題,但用了兩種思路。不存在誰高級,誰低級。用C寫PHP擴展解決問題就顯得有多牛逼了,那可不見得。用C寫PHP擴展,對比的應該是C程序員,而不是PHP程序員,那么C語言就比PHP語言高級,那這么說的話大家都用C開發網站得了唄。

          新課推薦:

          三:性能

          網友評價1:

          說swoole比workerman好,是因為評論的人沒用過workerman,他只是片面的認為c++比php快,就認為其程序框架也是這樣。

          然而,workerman只載入解析一次php文件,然后便常駐內存,極大的減少了磁盤IO及PHP中請求初始化、創建執行環境、詞法解析、語法解析、編譯opcode、請求關閉等諸多耗時過程。所以純碎從語言層面比較,更應該是c++和機器碼的區別。

          兩者都是非常優秀的開源框架,只是看自己更喜歡折騰c++還是php罷了

          網友評價2:

          其實性能差不多,workerman更穩定,發現問題,更易維護

          網友評價3:

          從跑分來每個指標workerman都比swoole略高一些,總體來看看swoole和workerman結果差不多,不過這僅僅是跑分,真實效果還是要看實際項目。

          網友評價4:

          我覺得是不是都搞錯了對比雙方

          workman是PHP寫的,但本質是用pcntl等擴展實現了功能

          swoole是C/C++寫的,但實際還是以PHP擴展形式出現

          所以其實都是PHP擴展

          所以其實比的是pcntl等擴展和swoole擴展的效能

          所以workman不慢不是很正常么?

          網友評價5:

          https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=db&l=zik073-1r

          這個是國外權威壓測機構 www.techempower.com 第19輪壓測,帶數據庫業務的,swoole用了數據庫連接池+協程,workerman就是原始php mysql阻塞用法,結論仍然是二者性能差別不大,各項性能指標均是workerman好些,尤其是plaintext,比swoole高35%左右。當然,這個只是壓測結果,僅有部分參考意義,不代表現實項目最終結果。

          新課推薦:

          四:生態

          網友評價1:

          因為項目需要, 智能家居一類的, 本來準備用C做, 想想swoole和workerman很火很成熟, 不少穩定應用場景了, 想想為什么不能用這倆試一下呢? C水平有限, 用PHP能滿足需求多好?

          所以今天大概了解了下swoole和workerman, 初步映象對swoole沒有想象中那么好, 反而workerman讓我非常驚艷...

          先說swoole:

          swoole, 官網頂部手冊竟然打不開, 后來找半天找到一個手冊. 你們這么nb團隊為何不能把官網做的像樣一點呢? 需要很多工作量嗎? 至少把官網頂部那個手冊改為正確地址好不好?遇到問題找了一圈沒找到啥解決辦法. 發了issues, 論壇也發帖了, 沒啥反應...

          再說workerman:

          workerman例子很完善, 講解詳細, 比swoole好不少. 重要一點是用純PHP就能實現如此之高性能php-cli在php5.3時代就已經成熟了, 一直沒時間在此基礎做大型項目, 老是感覺性能不行, workerman卻讓我驚艷.

          workerman用到的pcntl, posix兩個擴展也是PHP自帶的擴展, 默認會編譯進去, streams系列函數是PHP自帶函數, 更沒有擴展之說. 所以某人說的太夸張了. 并不需要不成熟第三方擴展, 這兩個擴展是非常成熟的擴展, 穩定到進入PHP默認開啟的擴展, streams甚至進入PHP基本函數了. 如果為了像Nginx一樣開啟Kqueue和Epoll則需要安裝和swoole一樣的pecl擴展:pecl-event. 此擴展也非常穩定了. 這些都是基本擴展, 不會不穩定更不會PHP7,PHP8不支持. streams, pcntl, posix, pecl-event其實對底層的淺封裝, 性能沒問題, 看你怎么用, 會不會用, workerman就用的很好。

          最后說一下:

          我不同意韓天峰說的swoole需要比較高超水平, 其實兩者都是給你封裝好, 拿來用就行. 但如果出現問題workerman可以去了解協議, 修改封裝的PHP代碼. swoole就沒法修改了, 至少你要會C語言才能去修改, 這是很多phper不擅長的.

          我暫時決定用workerman了, 因為出現上述那種問題我可以自己修改workerman的PHP代碼解決. 而swoole是用C重新實現的, 很多坑要去完善, 而社區也不活躍, 沒人理睬, 而我沒精力去查C代碼找原因. 發現很多人也是試驗了swoole后發現還是workerman穩定些, 所以改用workerman了. 其實我還是希望swoole能快速發展的完善些.

          以上純屬個人觀點, 一切都是為了PHP能健康快速發展下去, 希望swoole越來越好...

          網友評價2:

          其實都差不多,如果直接基于swoole或者workerman開發,都不算容易。

          但現在都可以基于框架開發,比如hyperf和webman,當然,如果你也試試imi,你會發現他倆在使用的時候,基本沒區別。

          Imi說,反正我都支持!

          網友評價3:

          workerman的文檔做的非常好,例子也豐富很多,我覺得workerman更容易上手,而且比swoole穩定很多

          網友評價4:

          官方方案fpm+opcache+jit+長連接,或者workerman,穩如老狗,官方方案,有問題自己輕松解決。

          實在沒有辦法可以引入第三方語言綜合即可。如果你關注PHP官方的協程或者異步方案,可以瀏覽下Amphp作者推出的Fiber擴展,已經進入rfc階段。

          網友評價5:

          workerman更符合php的精神,作為一個workerman一年多使用者,堅決支持workerman。而且workor真的特別認真,新手問題在論壇回復的也很及時,對新手友好度max。

          精品課推薦:

          1.ThinkPHP版:《PHP Workerman 基礎與實戰:即時通訊聊天系統》(2022.11.30最新上線)

          (原價¥399元,上新折扣價¥189元,僅限8天)

          開通地址↓↓↓https://www.php.cn/course/1475.html

          2.Laravel版:《基于workerman仿百度商橋IM即時通訊(Laravel實戰)》(2020.10.12上線)

          (原價¥299元,限時折扣價¥139元,僅限8天)

          開通地址↓↓↓https://www.php.cn/course/1131.html

          (課程咨詢+課件資料領取)

          以上PHPer的觀點你贊同嗎?歡迎高手們來噴!

          關鍵詞: workerman Swoole

          亚洲福利一区二区精品秒拍| 亚洲综合精品网站| 亚洲熟妇中文字幕五十中出| 亚洲国产精品综合久久网络| 婷婷亚洲综合一区二区| 亚洲成av人在线观看网站| 亚洲精品V天堂中文字幕| 亚洲人成电影网站色www| 国产精品亚洲综合久久 | 亚洲成年人免费网站| 亚洲熟妇无码爱v在线观看| 亚洲福利电影一区二区?| 亚洲精品国产第1页| 亚洲国产视频一区| 亚洲五月丁香综合视频| 亚洲中文字幕无码爆乳app| 亚洲欧洲无码AV不卡在线| 亚洲变态另类一区二区三区| 亚洲变态另类一区二区三区| 在线亚洲精品视频| 亚洲精品久久久www| 亚洲午夜福利AV一区二区无码| 情人伊人久久综合亚洲| 亚洲成色在线影院| 亚洲大片免费观看| 亚洲一区二区无码偷拍| 噜噜综合亚洲AV中文无码| 亚洲精品视频久久久| 亚洲伊人久久精品影院| 亚洲AV电影院在线观看| 亚洲精品自拍视频| 亚洲中文字幕久久精品蜜桃| 亚洲av日韩综合一区二区三区| 亚洲国产精品视频| 亚洲国产精品一区二区第一页| 久久水蜜桃亚洲av无码精品麻豆| 亚洲人成在线中文字幕| 亚洲国产成人手机在线观看| 亚洲国产aⅴ综合网| 亚洲国产精品va在线播放| 91亚洲一区二区在线观看不卡|