首先协程是什么就不多做解释了,看到这里的同学,我想至少对协程已经有了理解。
现在很多phper转go开发,大部分都是冲着go的静态语言和协程去的,当然还有钱多。
但是php自己其实也有协程支持,那就是swoole了。
工作原因,有幸接触了一段时间swoole和go,希望对比下两者的区别。
首先,网上很多大神关于swoole和go的对比,有的还是比较详细的。
比如swoole官方就有一个对比swoole和go的文章:https://wiki.swoole.com/wiki/diff/?id=1018&version=1&compare=current
知乎大神文章:https://zhuanlan.zhihu.com/p/93141701
感兴趣的话,可以 拜读一下。
文章基本是围绕,swoole是单进程协程切换,go是MGP模型切换。
swoole 的单进程模型 不能共享资源,没有线程并发问题,协程切换依赖io等等。
对比下来,基本都是go性能比较突出。
确实,go的性能比php高出不少,但同时也比php的学习和使用成本高很多。而且,目前go的开发框架大都是基于beego或者gin,说好用真实有点昧良心,相比之下基于swoole的hyperf、mix-php都是开箱即用,包含了大部分需要的功能,二开也成本不高。
总的来说,go的性能确实比php要高,但是使用成本也高出不少,同时由于静态语言天然的特性,比php这种弱类型语言在开发时的成本也要高出不少。
基于协程的框架,抗并发性能基本都没大问题,如果后端存储能撑得住,server端的并发基本不会有问题。
网友评论