搜尋
首頁頭條workerman和swoole性能誰比較好?如何選擇?

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器