go语言revel go语言培训( 二 )


3、golang的运行效率怎么样?
我是相当反感所谓的ping\pong式benchmark,运行效率需要放到具体的工作环境下面考虑 。
首先,它再快也是快不过c的,毕竟底下做了那么多工作 , 又有调度 , 又有gc什么的 。那为什么在那些benchmark里面 , golang、nodejs、erlang的响应效率看上去那么优秀呢,响应快,并发强?并发能力强的原因上面已经提到了,响应快是因为大量非阻塞式i\o操作出现的原因 。这一点c也可以做到,并且能力更强,但是得多写不少优质代码 。
然后,针对游戏服务器这种高实时性的运行环境 , GC所造成的跳帧问题确实比较麻烦,前面的大神 @达达 有比较详细的论述和缓解方案,就不累述了。随着golang的持续开发 , 相信应该会有非常大的改进 。一是屏蔽内存操作是现代语言的大势所趋 , 它肯定是需要被实现的;二是GC算法已经相当的成熟,效率勉勉强强过得去;三是可以通过incremental的操作来均摊cpu消耗 。
用这一点点效率损失换取一个更高的生产能力是不是值得呢?我觉得是值得的,硬件已经很便宜了,人生苦短,让自己的生活更轻松一点吧: ) 。
4、基于以上的论述,我认为采用go进行小范围的MMORPG开发是可行的 。
Go语言做Web应用开发的框架 , 哪一个更适合入门Revel Web开源框架
个高效的Go语言Web开发框架, 其思路完全来自 Java 的 Play Framework 。
特点
热编译,简单可选,同步(每个请求都创建自己的goroutine来处理 。
Go语言Web框架:beego
一个用Go开发的应用框架,思路来自于tornado , 路由设计来源于sinatra 。
支持特性
MVC;
REST;
智能路由;
日志调试;
配置管理;
模板自动渲染;
layout设计;
中间件插入逻辑;
方便的JSON/XML服务;
go语言有没有类似tp5框架有go语言revel , go语言有框架 , 例如:Beego(Go语言下开源go语言revel的,高性能Web框架 )、Buffalo(Go语言下快速Web开发框架)、Echo、Gin、Iris、Revel(高生产率 , 全栈Go语言的Web框架)等 。
Golang web 框架对比由于 golang 提供了完善的net/http标准库,基于该标准库实现一个web框架的难度相比其他语言低了不少 , 所以go web框架简直就是百花齐放 。从老牌的revel和 beego,到新出的 gin,和 iris 等,而且还有一些类似于 chi 这种router 。个人一般小项目,尤其是中间件需要暴露一些http接口的,基本就使用chi即可 。
本次测试主要是gin iris echo 这三个框架 。侧重在于高性能,从并发和json序列化和反序列化两个方面来测评,毕竟后台项目侧重的也就是这两个方面 。
为了选择符合重IO的框架,现设定如下场景的demo,demo的具体要求如下:
gin:
iris:
echo:
由于要测试5种body样本 , 4种场景,4个框架,因此把重点数据筛选出来(吞吐量、错误率和99%Line , 重要性依次递减),结果都绘制了图形,方便比对查看 。
综合以上各个测试结果可以看出,gin以及iris都是非常优秀的框架 , gin的优势比其他稍微大点,iris次之,而echo相应差一点 。
本次测试只是简单测试了一下3个框架的并发和json相关 。对比结果,不包括生态和工具的完善度等等 。如果测试有什么不完善的地方,欢迎交流 。
另外欢迎大家试用和star另外一个web框架 baa,为了避嫌我没有贴出baa的数据 , 性能测试处于gin之后和iris之间 。
golang 有哪些比较稳定的 web 开发框架第一个:Beego框架

推荐阅读