Node和相比Go,性能居然有巨大提升
最近,开源服务软件Hasura在官方博客上发布了一份文件,称随着用户数量的增加,软件的大规模性能开始成为一个问题,因此他们重写了一项NodeJS微服务与Go。结果显示,内存消耗减少了一半,但服务要求的数量增加了五倍。
Node和相比Go,性能居然有巨大提升
为什么选择go?
Hasura团队决定用Go重写服务,因为可扩展需求变得越来越迫切。选择Go的原因有很多,包括但不止:
其依赖性管理体系和构建体系非常适合云计算。
Nhost团队对Go有丰富的经验。
与Node.js相比,Go显得非常冗长,但它易学且上手快。
众所周知,它具有优异的性能。
重写服务
看似简单的事情做起来并不容易。事实上,重写工作并不顺利,尤其是编写这样的微服务。这项服务非常方便有用,但不会执行太复杂的任务。华丽的创新和实用性来自于连接用户最喜欢的两项伟大服务:S3和华丽,而不是做任何异想天开的事情。
重写后的性能表现。
基准测试不能避免任何重写工作,他们也是如此。以下测试环境是基于k6设计的:
在测试开始时,它会在最初的10秒内将工人数量从1增加到目标数,然后再运行60秒。
CPU仅限于整个系统的10%
没有内存限制。
在你看到结论之前,我想澄清一下,你将看到的数字不应该从表面上看。用于参考测试的系统的CPU容量非常有限,因此您希望对两种服务施加一些压力,以查看它们在压力下的性能。