首先協(xié)程是什么就不多做解釋了藤树,看到這里的同學(xué),我想至少對(duì)協(xié)程已經(jīng)有了理解屡限。
現(xiàn)在很多phper轉(zhuǎn)go開發(fā),大部分都是沖著go的靜態(tài)語言和協(xié)程去的眶诈,當(dāng)然還有錢多。
但是php自己其實(shí)也有協(xié)程支持,那就是swoole了坎炼。
工作原因,有幸接觸了一段時(shí)間swoole和go萄金,希望對(duì)比下兩者的區(qū)別。
首先,網(wǎng)上很多大神關(guān)于swoole和go的對(duì)比唯袄,有的還是比較詳細(xì)的。
比如swoole官方就有一個(gè)對(duì)比swoole和go的文章:https://wiki.swoole.com/wiki/diff/?id=1018&version=1&compare=current
知乎大神文章:https://zhuanlan.zhihu.com/p/93141701
感興趣的話宴偿,可以 拜讀一下消痛。
文章基本是圍繞逞带,swoole是單進(jìn)程協(xié)程切換展氓,go是MGP模型切換。
swoole 的單進(jìn)程模型 不能共享資源,沒有線程并發(fā)問題歪赢,協(xié)程切換依賴io等等扫尖。
對(duì)比下來躏结,基本都是go性能比較突出兆览。
確實(shí)子巾,go的性能比php高出不少,但同時(shí)也比php的學(xué)習(xí)和使用成本高很多瘾婿。而且煮嫌,目前go的開發(fā)框架大都是基于beego或者gin,說好用真實(shí)有點(diǎn)昧良心灶轰,相比之下基于swoole的hyperf闯捎、mix-php都是開箱即用秉版,包含了大部分需要的功能茬祷,二開也成本不高。
總的來說,go的性能確實(shí)比php要高起惕,但是使用成本也高出不少嘀粱,同時(shí)由于靜態(tài)語言天然的特性,比php這種弱類型語言在開發(fā)時(shí)的成本也要高出不少。
基于協(xié)程的框架,抗并發(fā)性能基本都沒大問題,如果后端存儲(chǔ)能撐得住,server端的并發(fā)基本不會(huì)有問題。