平时用 java 写的直接运行就结束的代码,基本都是本地电脑运行,也没有发现内存问题。
直到最近,用 java 写了一个简单的程序,运行在我的 1C1G 的腾讯云机器上,才发现 java 确实内存大户。
程序的功能为:
[ol]
[/ol]
这就是这个程序的所有功能,由于用到了定时任务和操作 mysql, 所以我第一个版直接用了 springboot ,平时工作也用整起来快。
用到的库为:okhttp + gson + mybaits + jdbc + logback
程序运行稳定之后内存占用:250M
这个简单的功能这个内存占用实在是太大了。
然后我觉得可能是 springboot 的原因,所以我写了第二版:
用了 okhttp + gson + mybatis + jdbc
去掉了框架和 logback, 直接用 print 输出 log , 定时任务也直接用了 while(true) + sleep 来实现。
这版程序稳定运行之后内存占用:90M
上面两版没有加任何优化参数,就是 java -jar xxx.jar 运行。
java 版本:java21
java21 了,还是这个内存表现,失望啊。