共计 568 个字符,预计需要花费 2 分钟才能阅读完成。
把之前的 java 程序,这周学了下 golang,然后用 golang 重构了下,稳定运行之后内存占用 8M。
前文:
果然吃内存,一个简单的 Java 程序就占用了 250M 内存
quarkus-graalvm 可以救 Java native 一命
程序功能如下:
- 每 10 分钟抓取某个链接的数据
- 抓取到的内容和 mysql 里面已有的内容作对比
- 存在就更新,不存在就插入到 mysql 中
- 每天早上 10 点发送一个企业微信通知
- 提供一个 rest 接口,上面的功能,可以通过定时触发,也可以通过接口手动触发(保留为了调试和验证程序情况,稳定之后几乎不会调用)。
- 使用了 gin + gorm + cron 库(因为之前的 java 程序用了 sprinboot, 所以 go 我也特地选了大的库来使用)。
这几天的结果如下:
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
正文完