250M 的 Java 程序,用 go 重构,只需要 8M

151 天前
 karottc

把之前的 java 程序,这周学了下 golang ,然后用 golang 重构了下,稳定运行之后内存占用 8M 。

前文:

果然吃内存,一个简单的 Java 程序就占用了 250M 内存

quarkus-graalvm 可以救 Java native 一命

程序功能如下:

这几天的结果如下:

java springboot: 250M

java (无框架):90M

java, quarkus + graalvm + native: 50M

python: 20M

go: 8-10M 。


本来想用下 rust, 发现如果不系统的学习,根本没发写出正常的程序,暂时放弃了。


go 在资源受限的情况下,确实表现很好。之前我是排斥学 go 的,这次做项目发现,也不是不能接受。我之前写 C 的,要啥啥没有,现在有了 go, 就是 c with gc ,而且库多(相比于 c )。而且交叉编译非常方便。

不过工作中暂时用不到 go ,玩完了。 我还是选择 kotlin

20429 次点击
所在节点    Java
152 条回复
brookegas
151 天前
@wxw752

理解并祝福。。。
janda
151 天前
没必要对比,不同需求选择不同方案,也取决于使用者所掌握的语言
MrDarnell
151 天前
@saranz 一个是占内存对比,一个是占磁盘对比,从成本上来说怎么个一样法?
wxw752
151 天前
@brookegas #61 看了一下你的历史记录,挺有意思的人。战斗力很强😁
MrDarnell
151 天前
@brookegas Java 过于简单-这句话不能苟同,不谈框架,从基础 sdk 使用上来说,别的语言一行可以搞定的事情,java 需要写 5 行,不要谈 spring-boot 带来的简化,只谈语言最基础的东西,php 的确是世界上最好的语言! java 不配!
Richared
151 天前
@murmur 本来想和你解释下,但是我看我写的回答没啥问题,祝福你吧。没别的说的了。
diagnostics
151 天前
理解并祝福。。。
golang is welcome you
dreamage
151 天前
什么场景呀 是在抓利率吗
DesnLee
151 天前
@murmur #60 我 64
murmur
151 天前
@Richared 你难道不知道安卓成就成在 java 语言么,要不为啥安卓一开始能迅速构建生态,拉拢全世界开发者

塞班失败有一部分原因就是他开发 c++,太 tm 难学了

现在安卓已经成功了, 选 java 是历史原因改不了,那就升级内存和硬盘呗,反正这俩玩意真不值钱
idblife
151 天前
@zzzmh
一般来说 java 比 go 服务要多占用 1 倍以上的内存,如果你每年数据中心的成本是 5000 万左右,意味着能节省大概 2000 万成本,老板会怎么想呢?
murmur
151 天前
@Richared 另外吹牛逼得调查了才有发言权,我没苹果手机,ipad 微信是 694m 初始安装包,安卓手机上 264 ,也不知道哪个平台缺少工匠精神
murmur
151 天前
@idblife 如果你全是简单的 curd+缓存操作可以用 go ,如果是那种复杂 sql 带事务联表操作,用 go 没个顶级团队你做不起来
ily433664
151 天前
@idblife 数据中心成本≠内存成本,现在内存很便宜
qxdo1234
151 天前
@murmur 也可以啊,go 虽然框架和生态不太如 java 成熟,但是事务联表复杂 SQL 还是支持的。
murmur
151 天前
@qxdo1234 支持和团队协作、好招人还是有区别的,java 的企业开发太成熟了,这种东西放哪里都是这么开发,人家不看文档凭以前经验就能上手项目

所以 java 成就成在 spring+mybatis/hibernate 包打一切

go 得看咱俩用的轮子是不是一套
murmur
151 天前
国内还有个很重要的因素,java 是信创语言,go 我不知道是不是,java 有阿里的虚拟机这就是国产化
XDiLa
151 天前
@boqiqita 看到这个真的绷不住了
asuraa
151 天前
为啥不试试 c# 不试试 asp.net core
idblife
151 天前
@ily433664
数据中心内存很便宜???
你但凡有个云服务的帐号也不会这么说吧。。。

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

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

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

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

© 2021 V2EX