最近使用go开发一些高并发的接口,大家都推荐用gin,但是发现fasthttp性能很高,用哪一个比较好呢?
感觉这也不是fasthttp的问题,也不是sync.Pool的锅,就是没有用好sync.Pool而导致的并发安全问题,gin的 gin.Context 也是使用的sync.Pool, 请查看: https://github.com/gin-gonic/gin/blob/master/gin.go#L371 。fasthttp会发生,那么gin也避免不了。上一次的请求响应都结束了,fasthttp都已经把这个Ctx归还到pool里面了,而上一个请求响应创建的协程还在持有着已经归还的Ctx,就算不是 fasthttp,sync.Pool 这样用也很不规范
#5
更多评论
fasthttp不是真仙降世, 异乎寻常的快速是有代价的.
看一下这篇文章.
https://cloud.tencent.com/developer/news/462918
老老实实用你的gin吧.正常使用也够了
#1