不是吵架帖子,但经常看 go 和 java 比较的时候,经常有人说,go 节省点的内存跟程序员相比根本不值得一提,我越想越觉得不对劲,对于最常规的 crud 来说,不得不说 java 确实比 go 还是要一些的,不过事实是 java 或者 php 程序员转 go 其实狠快根本没那么难,而且现在环境下程序员不一定就很贵了。
go 和 java 我自己都在写,一般来说对于不差钱的国企和政府以及企业市场,java 确实是最适合的,但是我也自己做一些小产品和项目给一些小公司,我能感觉到 java 和 go 对你拿单的成本影响是很大的,比如我有一个订票(城际定制商务车业务)小程序,有时候是我自己提供云服务器,我不得不说物理机的内存确实狠便宜,可是云服务器的内存真的很贵,新用户还不明显,老用户续费狠明显,在一台 2 核 4g 的云服务器上,我一般自建数据库和 redis,然后再配合 go 的应用,因为可能面对好几个客户,会有一些自定义需求,所以部署个五六个是狠轻松的,因为每个应用的访问量并不大,但如果是 java 是很难这样子搞得,这样给了自己很大得利润空间以及拿单成本。
说了这么多,我只能说 go 其实更适合个人开发者和成本敏感型得小团队,因为一般这样团队,都自己写程序,最大得成本就是云服务得开支了,最后再说一句云服务器得内存,cpu,宽带真得很贵,动不动类似 spring 全家桶那样得架构真得狠费机器。

sprinboot 换成 quarkus 会不会好点呢?

2c4g 的服务,本地数据库 redis ,跑五六个实例没干过私活的再次感觉眼界打开了

狠轻松的 go ,又有什么理由不用呢?

同感 ,我一个 go 写的物联网项目 ,实时 300 个设备在线 + 大量消息 + webapi 才 25M 内存, 太省了。已稳定运行 3 周

把写 go 的开了换成 java 的,省下来的工资够买多少台服务器了

#2 2c4g, 6 个机器 跑 10Kqps 还空余 大量资源

买服务器不是花钱就行的, 服务器越多运维的成本就越高, 架构也可能要重新设计.

感觉狠赞

一方面,你说云主机内存贵,很有道理。jvm 就是费钱另一方面,你都 redis 了。。不肯拿个 2G 4G 容量的 redis 吧。。。。所以还是得费内存

不可能拿个 2G 4G 容量的云主机跑 redis 吧 —— 结果还真是 2C4G 。。。你赢了。。。

说内存效率不重要的基本都是大厂吧对于小厂来说,java 的效率可太吃成本了

大厂可能无所谓, 像我这种部署到客户厂里的, go 我只要一台几百块的口袋机就行了, java 那可不行.

你的 redis 是用来做分布式锁还是做缓存用的?

2c4g 和 2c16g 每个月就差 100 快钱而已,什么业务成本能敏感到这种程度?业务量大的自己找机房托管,单个开发的成本,足够均摊 20 台 40 核 256G 内存的费用了。

据说现在的外包,都卷到了一套系统一两千,还带一年服务器的。

卧槽开眼了。

2c4g 160 ,2c16g 280 ,这成本快翻倍了吧

主要是 jvm 、spring 这一套太重了。在目前家家降本增笑的背景下,大厂照样在乎成本了。微服务、容器化的架构下,java 应用上来 jvm 就吃掉几个 G 的内存,几千上万个容器开销就非常大了。

我要笑死了🤣,7 个”很“和 7 个”狠“

刚刚去 k3s 截了个图自己买云厂商活动机组的 k3s ,普遍是 2c4g ,所以对内存很敏感,一旦全部跑在一台机器上面之后,内存爆了机器都连不上部署的这些东西,除了 python 那个和 halo ,其他都是我自己写的,用 go 写的请求量超大的服务,占用内存也比那几个 java 老服务没流量占用的内存小一大半。绿色框的 java 服务设置了 jvm 内存限制为 1G ,它的请求量大,占用内存多没得说;蓝色框的两个老服务,基本上没什么流量了,现在设置的 jvm 内存限制是 512M ,再低就起不来了现在你问我写新东西要用 java 还是 go ?你觉得我该选什么?从图上看,go 写的东西无论是 cpu 还是内存都比 java 低太多了————————FAQ:1.为什么不加钱上大机器?A:钱不是大风刮来的,就这一堆,算下来一年都要好几千块钱呢2.为什么这么多 java 服务?A:有些是以前写的,为了降低占用,我都把里面的代码改了很多了,老服务做兼容的逻辑,以前是查库,现在我改成了返回死数据。如果时间够,我是真的想把这堆东西全部用 go 重写3.这是 pod 的占用,有些两个容器的是不是其他容器占用大A:有两个容器的,第二个容器都是 categraf ,用来采集 promethus 数据上报监控的,没有这个监控,我连哪台机器内存爆了都不知道

数据库和 redis 在单独的机器上,通过内网连进去,不在 k3s 里面

目前 go 的生态已经很不错了,以前一般公司不太敢切到 go,轮子少,尤其是特定业务缺少轮子自己造工作量很大,现在公司用 go 的不少了,不只是服务器内存成本

/流汗 这种帖子下次还是开到个人开发者这类的吧,仅仅是剩内存不足以让企业更换技术,这个成本比内存带来的成本高得多

一套一两千是卖 saas 吧,一般是多租户设计,点击几下就上线了,边际成本接近于零。 多花一个人天就不止 1000 了。 上来就吃掉几个 G 内存的应用,用 Go 也小不了多少,按照过去经验,大概能节省 40%到 60%左右。按每个容器省 2G 算,10K 个容器就是 20T 内存,采购价约 60 万,按使用 3 年算每年才 20 万,还不到半个开发的成本。个人玩儿票业务,跟营收支柱业务,成本敏感度差异是很大的,租办公室一个工位成本就要一两万一年了,核心区域一个工位一年成本要五万。让个人掏这个钱,体感要命了一样。如果省内存收益巨大,哪个公司砸点钱用 Rust 或 C++重写包括 hadoop 在内的一大把基础设施,应该不愁销路。