go 的内存优势在部分场景比想象中多

83 天前
 momowei

不是吵架帖子,但经常看 go 和 java 比较的时候,经常有人说,go 节省点的内存跟程序员相比根本不值得一提,我越想越觉得不对劲,对于最常规的 crud 来说,不得不说 java 确实比 go 还是要一些的,不过事实是 java 或者 php 程序员转 go 其实狠快根本没那么难,而且现在环境下程序员不一定就很贵了。

go 和 java 我自己都在写,一般来说对于不差钱的国企和政府以及企业市场,java 确实是最适合的,但是我也自己做一些小产品和项目给一些小公司,我能感觉到 java 和 go 对你拿单的成本影响是很大的,比如我有一个订票(城际定制商务车业务)小程序,有时候是我自己提供云服务器,我不得不说物理机的内存确实狠便宜,可是云服务器的内存真的很贵,新用户还不明显,老用户续费狠明显,在一台 2 核 4g 的云服务器上,我一般自建数据库和 redis,然后再配合 go 的应用,因为可能面对好几个客户,会有一些自定义需求,所以部署个五六个是狠轻松的,因为每个应用的访问量并不大,但如果是 java 是很难这样子搞得,这样给了自己很大得利润空间以及拿单成本。

说了这么多,我只能说 go 其实更适合个人开发者和成本敏感型得小团队,因为一般这样团队,都自己写程序,最大得成本就是云服务得开支了,最后再说一句云服务器得内存,cpu,宽带真得很贵,动不动类似 spring 全家桶那样得架构真得狠费机器。

14464 次点击
所在节点    Go 编程语言
148 条回复
Bingchunmoli
82 天前
@csys 但是 java 现在有一套代码生成的,有很多业务生成就解决了(甚至是前后端)(小厂)开发成本会降低很多,go 现在生态还需要完善
ashin
82 天前
对于独立开发来说,每一 M 内存每一 M 硬盘每一 M 带宽 能省的必须省,为了省内存和 cpu ,我连 crontab 都舍不得配,全部移到 GitHub action 上去跑,要加载用到的数据字典都是用到的时候耗点时长和牺牲点体验临时加载用完就卸掉,每一个资源的消耗都意味着要自己掏钱,别说每月就差 100 块了,每月能不能靠自己挣到 100 块都是不确定的事情,所以这么抠抠搜搜。

目前我 2c8G redis+mysql+10 几个 go 服务,基本用不完,耗内存的主要还是在跑一个 selenium 脚本用满了
lesismal
82 天前
> 说了这么多,我只能说 go 其实更适合个人开发者和成本敏感型得小团队,因为一般这样团队,都自己写程序,最大得成本就是云服务得开支了,最后再说一句云服务器得内存,cpu,宽带真得很贵,动不动类似 spring 全家桶那样得架构真得狠费机器。

OP 格局低了, 越大团队越大业务, 省的越多. OP 个人只省了这点成本就很可以了, 对于大业务量, 那节约的成本可是大太多了

顺便安利下我这个是给大业务节约成本的仓库, 量小的标准库更适合:
https://github.com/lesismal/nbio
Ipsum
82 天前
之前看人说,不差内存的 arm 用 go 来写最方便。
abersheeran
82 天前
@happy32199 信创还真不是只认 Java……我参与过的项目只有一个有少量的 Java 服务,其他全是 Go 、C 、Python 。信创不关心什么内存磁盘用量啥的,人家指标点在芯片、系统、数据库之类的东西,国产化率有多少。当然能在低配机器上跑肯定是不错的,只是这个不是最核心的东西。
abersheeran
82 天前
个人项目用 Java 确实要命,什么也没跑先吃一堆内存。之前跑一个社区的服务,Ruby 写的,要了命了,内存猛猛吃。我只有一堆 1C0.5G 或者 1C1G 廉价服务器,所以从来只写 Rust 、Python 、TypeScript 、Golang 这种省内存的……
kk2syc
82 天前
@chendy 当年我负责维护的公司服务器,4c8g 跑 400 多个 phpcms 站点,利润夸张,老板买房买车
chenqh
82 天前
@kk2syc 我艹,这么利害...
chenqh
82 天前
@abersheeran ruby 都是 ror 吧,python django 也一样啊.只是 python 很多人不用 django
hefish
82 天前
这样啊,那我也搞个 go 玩玩。。

楼上大佬们,现在搞 web 框架,一般 go 用哪个? orm 用哪个?
RicardoY
82 天前
对于小规模场景,节省成本的最好方式是要实现实时的智能容量管理,比如使用云函数+可伸缩的云数据库,成本会非常非常低。
cookii
82 天前
nextjs 直接无服务更是绝杀
HaroldFinchNYC
82 天前
php ?
houshuu
82 天前
当时入职第一个接触的项目就是迁移一个 kotlin 核心微服务到 go ,前前后后花了 3 个月重构,但之后每个月能省大概 1.5T 内存的钱,CPU 用量也省了很多。现在有在考虑转 zig 或者 rust 了
replica 上 100 的话,基本早转早省。只是经常会出现内部库没有对应版本,得自己移植旧库到新语言上。
jqtmviyu
82 天前
之前论友分享了一个屏蔽 pcdn 节点的工具, 叫 PeerBanHelper , java 写的, 运行几百 M.
关键我下载 bt 的 transmission 还不到 30M. emby 也就 300M.
后来实在受不了这占用, 直接用 shell 写了个防火墙拦截的. 定时任务, 占用为零, 这下总算舒服了.
lx0758
82 天前
@aLazarus 整啊, 刚刚把我几十流量的博客换成 Go, 内存从 400M 锐减到 30M, 太爽了!
lx0758
82 天前
我把我的博客也换成 Go 了, 确实很爽! 生态环境小应用基本可以做到平替.

不过 Java 还是有 Java 的好.

我个人的观点是: 企业内存不敏感尽量 Java, 个人用户选 Go 没商量~
lx0758
82 天前
关键还是 Go 学习成本不高, 两个一起整没啥压力.
yaodao
82 天前
我是一个写 java 的。但 java 的内存占用真的太高了,所以我现在跑在服务器上的两个 web 的后台服务都是 go 写的,一个为记账软件,另一个是博客系统。 并且博客系统的 db 还换成了 sqlite3 ,因为 mysql 等服务也太占内存了
gongquanlin
82 天前
@Mystery0 #20 这是什么面板呀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1080790

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX