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

114 天前
 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

19660 次点击
所在节点    Java
152 条回复
DOLLOR
113 天前
@abcbuzhiming
你这说法并不能反驳呀。
经济不好、产能过剩,企业反而更要节约成本、降本增效才对。
哪有企业在经济危机了,还扩招几批各个平台的程序员,卷那几个内存的?
decken
113 天前
@idblife #71 内存翻倍 整体费用不是翻倍 你去看看云厂商的定价 4core 8g 和 4core 16G 差价并不大
abcbuzhiming
113 天前
@DOLLOR 很简单嘛,按你这个解释,既然要降本增效,阿里应该就直接把 web 版的淘宝砍掉,那岂不是降的更多呢?

经济不好的情况下,企业当然会选择降本,但是这个降本的途径,会从其他渠道走。相反的是。在经济不好的时期,但凡可以引来流量和更多用户的渠道,都必须重视,不光阿里,好几家大厂都开始增强自己的 web 端。为啥,缺流量了呗,每个入口都必须重视了呗。这就是你不干有的是帕鲁干
zpxshl
113 天前
@abcbuzhiming 淘宝没落跟 pc 端关系也不大。 它核心竞争对手
zpxshl
113 天前
@zpxshl 拼多多,也没搞 pc 端。
sagaxu
113 天前
@idblife 以我了解的某个 800 万/年的机房为例,1U 服务器的年成本,采购价 5 万按 5 年生命周期算每年 1 万,托管费 5000 ,总成本每年 15000 ,内存按 256G 算,1 万左右,分摊到 5 年每年 2000 ,占年均摊成本的 13%。

5000 万年成本的机房,内存大概占六七百万,省一半就是省三四百万。如果配的是 128G 内存,能省一两百万。

实际上不可能全部拿来跑业务服务,很多是拿去跑 DB 等基础设施的,以上节省费用还要减半。
5000 万里省个几十万到一两百万,不知道你的 2000 万是怎么计算出来的。
abcbuzhiming
113 天前
@zpxshl
淘宝的没落和 PC Web 端是没有关系,有关系的是他没落后的态度,按 101 楼说的,你没落了更应该减员增效对吧,为啥还回来重新升级 PC web 。

本质是上升期看不上那点入口,那点流量,下降期就必须重视了。

PDD 的崛起也是差不多的道理——市场一直有低成本的需求,淘宝在上升期是看不上的,就像 92 楼那位老兄说:他会在这个时期考虑为用户节省吗?反正又没竞争对手怎么都能增长。结果 PDD 就跳出来了。

市场就是这样,你永远想不到刺头会从哪里蹦出来,需求是客观存在的。经济高速发展期,可能用户的需求反而得不到满足,因为这个时期作为商家都忙着吃肉,谁关心你用户怎么想呢?但是经济进入衰退那就要绞尽脑汁去掏以前看不上的“某一小撮群体”手里的钢镚了
DOLLOR
113 天前
@abcbuzhiming
砍东西肯定要先砍成本高的。
web 版本身成本就低,性价比也不错。

把其他成本高的开发砍了之后,最后留下来的,反而正是 web 、webview 、electron 这些东西,而不是去卷那几个内存。
murmur
113 天前
@abcbuzhiming 淘宝现在是没活了啊,自己搞产品转型失败,放弃低端用户,把假货和山寨下放到咸鱼,咸鱼体验一坨屎,客服更是摆设,本体促销跟计算题一样,四处投资然后空降把产品搞黄,钱全浪费了

但是这玩意跟技术、electron 有半点关系么,他但凡少投资点产品,把钱拿来做正经的促销,早行了
bk201
113 天前
分析了太浅了,那为什么造成这样的现象呢?
SouthRiverMatt
113 天前
有没有可能 php 是世界上最好的语言(
ily433664
113 天前
@idblife #80 你自己看一下不就知道了,对于高配云服务器来说,内存费用只占比较小的一部分
bugfan
113 天前
golang 就是现代化的 C 语言
artiga033
113 天前
都在争论企业怎么怎么样,资本家确实不在乎这点成本。可你们不混开源社区的吗?我个人选择自用的开源软件时都是绕着 Java,Python,Node.js 走,除非实在没有替代,企业吃得起个人用户可不一定,假如是树莓派之类的场景下那是跑 java 好还是跑 golang 好?

这么一想我脑子里有印象的 java 开源项目基本都是 kafka,lucene 这些基本只有企业级使用场景的,企业选择 java 无可厚非,但是其他语言的开源软件生态明显比 java 好多了。
INCerry
113 天前
还是那句话,不如用 C# .NET ,开发效率高,资源占用还低
murmur
113 天前
@artiga033 你说的对,但是现在所有软件开发, 除了国内因为政策原因没放开的地方,全是黑海

已经没多少粥可以分了

这次信创转型是最后一次机会,老企业 gov 系统重构

至于互联网,就现在的大公司 app ,立刻瘦身 50%,对于企业裁员增效,对于用户享受真的小而美 app ,不好吗

真就是没需求在那硬造需求,没痛点硬在那重构,不折腾干嘛,等着被优化么
kenvix
113 天前
魔怔 go 小子一天都在吹些什么东西,我建议直接 cgi ,没人访问零内存占用
yazinnnn0
113 天前
怎么从黑 java(spring)一转黑苹果了.....
GoRoad
113 天前
作者几句话,论坛吵翻天,几天一次,快速拿币
murmur
113 天前
@yazinnnn0 黑安卓资源占用多,内存大,不就是吹苹果好,这年头还有什么移动设备内存硬盘双吃紧的

不会是鸿蒙吧,鸿蒙这种放弃所有兼容性,行政力量要求所有 app 重做,并且砍掉自己功能的,第二家都做不出来

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

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

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

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

© 2021 V2EX