# go lang的性能问题
本地环境与生产环境接口耗时差距过大。在3-4秒左右的差距!
### 基础架构 :
- 主体框架:
gin
- 中间件:
redis、logs、viper(配置插件)、gin-swagger
#### 例图:
> - 生产环境接口执行效率
![生产环境效率.png](https://static.studygolang.com/210801/4c0babfc85f17b6c0a5ca3477eae13d4.png)
> - 本地环境接口执行效率
![本地环境效率.png](https://static.studygolang.com/210801/f8a045306e21a53e0a627e51e7a23c40.png)
> - 测试环境接口执行效率
![测试环境效率.png](https://static.studygolang.com/210801/5c7d1412ee2ca56edc522ffeac49619c.png)
- 测试环境配置
![测试环境配置.png](https://static.studygolang.com/210801/58e1962aa8094f9d119db4305f339ef2.png)
> - pprof 图
![pprof002.png](https://static.studygolang.com/210801/c4c3a3f77c5a017afa7d967a707cbd44.png)
![pprof-top.png](https://static.studygolang.com/210801/77568fe65fedd33814ed32cbf48528cb.png)
#### 说明:
> 本地环境中使用http请求从生产代理出来的api进行逻辑处理。在这部分中有使用到golang提供的并发函数`go func`,按照主机数量也就57个主机。这部分按照正确的情况应该是要比生产效率慢一点的,因为俺的frps服务端的配置也就1M带宽。且redis也是自己搭建的redis。也有一点影响(相对于生产的内网环境来说)
> 线上为redis集群,与服务api同一内网环境。效率应该是要比本地以及测试环境高的。但是观察日志结果`并非如此`???
### 生产机器资源占用情况
![生产机器配置.png](https://static.studygolang.com/210801/8dea168c0acb17888fc3cda0b2ec0923.png)
#1
更多评论
猜测可能是docker和操作系统的缘故.
你线上是用docker部署的是吗?
你本地和测试环境应该是裸奔?
你可以做个测试, 生产环境裸奔不要用docker试试效果.
另外注意操作系统是否一致,
#2
<a href="/user/focusonline" title="@focusonline">@focusonline</a> 感谢大佬的回复,目前部署是直接在本地执行的二进制文件。与docker并无关联!
#3