优雅的读取http请求或响应的数据
哇塞 bytes.makeSlice 终于从前十中消失了,真的太棒了,还是看看 bytes.makeSlice 的其它调用情况吧。
从图中可以发现 bytes.makeSlice 的分配已经很小了, 且大多数是 http.Request.ParseForm 读取 http.Request.Body 使用 ioutil.ReadAll 原因,这次优化的效果非常的好。 看一下更直观的火焰图吧,和优化前对比一下很明显 ioutil.ReadAll 看不到了。 优化期间遇到的问题 比较惭愧在优化的过程出现了一个过失,导致生产环境2分钟故障,通过自动部署立即回滚才得以快速恢复,之后分析代码解决之后上线才完美优化,下面总结一下出现的问题吧。 在构建 http 请求时我分了两个部分优化,序列化 json 和读取 http.Response.Body 数据,保持一个观点就是尽早把 buffer 放回到缓冲池,因为 http.DefaultClient.Do(req) 是网络请求会相对耗时,在这个之前我把 buffer 放回到缓冲池中,之后读取 http.Response.Body 时在重新获取一个 buffer,大概代码如下:
(编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 5G发牌一周年:行业应用加速融合 超高清、VR/AR将率先爆发
- Oculus Quest获得“原型版本”级别的OpenXR支持
- office2019专业增强版怎么激活 教你免费运用它
- 从7600万个5G连接中,我们发现了7种最有前景的5G物联网应用
- Pico针对海外市场发布企业版VR一体机Pico Neo 2、Pico Neo
- VR进入北京城市副中心建筑工地 施工人员实景体验增强安全意
- 一文讲弄懂什么是vlan、三层交换机、网关、DNS、子网掩码、
- VR游戏《SWORDS of GARGANTUA Tesaract Abyss》将于4月登陆
- 丹麦VR内容厂商MeetinVR发布VR协作平台MeetinVR公测版
- 关于边缘计算,你可以了解的更多一点