什么情况,占用内存 2 个 G! springboot 这么耗资源嘛

写了一个 springboot 的小采集程序,使用了 netty (采集 tcp 协议数据)、jpa (保存数据库)。
占用内存为什么这么高呢,是不是需要优化,删除没用的包什么的。

我其他用 纯 java 实现的 同样功能的采集程序,只占 200M 左右(下图 colloect 开头的,和 route 开头的)。

其他的用 node 实现的就更小了,第二张图,同样的功能 java 和 node 程序内存占用对比。node 只有 30 几 M 。

springboot 和其他 java 程序:

pm2springboot

java 程序和 node 程序:
java_vs_node

相关文章

17 thoughts on “什么情况,占用内存 2 个 G! springboot 这么耗资源嘛

  1. 2 个 G 有点多了吧,如果只是爬虫,100-200M 应该是够了的,加了 jpa 和 netty 的包大概也就多几十 M
    所以 300M-500M 足够….

    一个是看你是否给 jvm 分的多了…

    另外 netty 是不是没释放资源,这个涉及到堆外内存的使用

    我理解的是这样,如有不对楼下补充

  2. 我用 netty 写了一个抓包工具,用 springboot 保存 req res 数据并负责展示,运行下来也就 700 多 M,你这个怕是内存没管理好吧,内存分析工具分析下,看看占用内存的是哪些对象

  3. java 本来就是上个世纪的,又老又笨重,打印个值都要写一大串。。。什么时候淘汰它

  4. @des 默认分配那么多内存啊。服务器是 32g 内存的,已经跑了很多 docker 容器了,这个程序是直接跑在宿主机上的。
    如果按比例分配是不是要放在容器里就会占用少一点。

  5. @wangyanrui #8
    @cheng6563 #9
    @passerbytiny #10
    可以设置的啊,多谢。现学的 java,不太熟悉

  6. @free9fw 奋斗的青年啊,你在搞笑么。号称要淘汰 JAVA 的十几种语言今天能顶的上来的有哪个,别一天天天的瞎想

    @selfcreditgiving 什么都用容器解决最后会什么都解决不了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注