首頁  >  文章  >  workerman和swoole性能誰比較好?如何選擇?

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

青灯夜游
青灯夜游原創
2022-12-01 10:00:375568瀏覽

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

workerman 在比較 swoole 在實際開發專案中,你會選擇哪一個?對於新手學哪個較好,有什麼建議嗎?

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

我們先來看看各自介紹:

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

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

workerman 是純php寫的網路框架,支援高並發,超高穩定性,它大大突破了傳統PHP應用範圍,被廣泛的用於即時通訊、APP開發、小程式開發、聊天室、手遊服務端、網路遊戲、硬體通訊、車聯網、智慧家庭、物聯網等領域的開發。 【workerman教學

支援TCP長連接,支援Websocket、HTTP等協議,支援自訂協議,擁有非同步Mysql、非同步Redis、異步Http、MQTT物聯網客戶端、非同步訊息隊列等眾多高性能元件。

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

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

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 即時通訊聊天系統

workerman和swoole性能誰比較好?如何選擇?
#(ThinkPHP6 Workerman/websocket)

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

1 、websoket通訊原理以及與http的關係 

2、workerman搭建websoket服務 

3、QQ群聊原理與實作

4、Workerman訊息推送與定時器

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

6、客服後台取得線上客戶名單等

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

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

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

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

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

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

workerman和swoole性能誰比較好?如何選擇?
課程諮詢課件資料領取

網友們觀點:

網友評價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工具把資料夾拖進去,然後st​​art就好了,省心多了。

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

網友評價5:#

個人覺得swoole和workerman都能解決高並發io問題,但用了兩種想法。不存在誰高級,誰低級。用C寫PHP擴充解決問題就顯得有多屌了,那可不見得。用C寫PHP擴展,對比的應該是C程式設計師,而不是PHP程式設計師,那麼C語言就比PHP語言高級,那這麼說的話大家都用C開發網站得了唄。

新課推薦:

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

三:性能

網友評價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%左右。當然,這個只是壓測結果,僅有部分參考意義,不代表現實項目最終結果。

新課推薦:

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

#四:生態

網友評價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最新上線)

workerman和swoole性能誰比較好?如何選擇?
(原價¥399元,上新折扣價¥189元,僅限8天

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

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

workerman和swoole性能誰比較好?如何選擇?
(原價¥299元,限時折扣價¥139元,僅限8天

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

workerman和swoole性能誰比較好?如何選擇?
課程諮詢課件資料領取

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

#
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn