从 Node 转向 Go,性能提升 5 倍,内存减少 40%( 二 )


文章图片
在download_small_file案例中很难看出来有什么变化 , 但将该场景的响应时间从Node.js案例的29ms提高到Go案例的7ms 。 除了download_image_manipulated , 在其他场景中看到了4倍的改进 。
现在来看看95%的页面响应情况 。
从 Node 转向 Go,性能提升 5 倍,内存减少 40%
文章图片
在该测试案例下面 , 你也能看到大多数情况之下都有4倍的改进 , 但在download_image_manipulated和download_large_file这两种情况下看到了实质性的改进 , 但没有像其他情况那样戏剧性 。 这是有道理的 , 因为下载大文件是由I/ONET约束的 , 而处理图像是由CPU约束的 , 即使如此 , 很高兴能看到这一重大改进 。
将服务部署到生产中
在服务被重写和测试后 , Hasura团队将服务部署到生产中 。 当它被部署后 , 效果非常显著 。 下面是在集群中的一个节点的内存使用情况 。
从 Node 转向 Go,性能提升 5 倍,内存减少 40%
文章图片
从 Node 转向 Go,性能提升 5 倍,内存减少 40%】正如你所看到的 , 新服务减少了近40%的内存占用 , 这一重大改进可以为更多的用户和流量提供服务 , 且不会增加基础设施费用 。
结论
经测试及实际生产部署得知 , 重写后的服务顺利完成了当初定下的性能提升目标 , 利用更少的资源提供更多的请求与服务 , 并且也改善了用户的响应时长 。
参考链接:
https://nhost.io/blog/hasura-storage-in-go-5x-performance-increase-and-40-percent-less-ram