V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GTim
V2EX  ›  Java

SpringBoot 的应用程序实在太大了

  •  
  •   GTim · 2023-02-25 15:52:10 +08:00 · 6162 次点击
    这是一个创建于 666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个 Spring Boot 程序,占用内存 11G ,包大小 1G ,哭晕啊

    大家都是怎么瘦身的啊

    45 条回复    2023-03-08 10:00:07 +08:00
    misaka19000
        1
    misaka19000  
       2023-02-25 15:53:24 +08:00 via Android
    什么程序占这么多内存?
    kisick
        2
    kisick  
       2023-02-25 15:54:31 +08:00
    jar 包大小 1G?
    Ufo666
        3
    Ufo666  
       2023-02-25 15:55:21 +08:00
    好好奇
    k9982874
        4
    k9982874  
       2023-02-25 15:57:38 +08:00 via Android   ❤️ 5
    你是把片儿塞里面了吗?
    javahuang
        5
    javahuang  
       2023-02-25 16:08:56 +08:00   ❤️ 2
    你是塞啥了...我的问卷系统,前端+后端+数据库塞到一个 SpringBoot 的 fat jar 里面,也才 50M 而已 😂 https://gitee.com/surveyking/surveyking
    herozzm
        6
    herozzm  
       2023-02-25 16:11:04 +08:00
    没有啊,就几十 M
    KevinBlandy
        7
    KevinBlandy  
       2023-02-25 16:18:26 +08:00
    我们一个工程打包 200Mb 已经觉得够离谱了。1G 是咋来的?你是装了大象么。。。
    proxychains
        8
    proxychains  
       2023-02-25 16:22:07 +08:00   ❤️ 4
    是不是把 node_modules 也放进去了
    GTim
        9
    GTim  
    OP
       2023-02-25 16:25:50 +08:00
    回楼上的,我也不知道啊,我还没看源码
    Hanggi
        10
    Hanggi  
       2023-02-25 16:49:57 +08:00
    Java 整体占用资源会大一些,不管是文件大小还是内存
    xwayway
        11
    xwayway  
       2023-02-25 16:53:34 +08:00 via iPhone
    @javahuang 这不活捉了么,公司的问卷系统有借鉴你的代码。哈哈
    echo1937
        12
    echo1937  
       2023-02-25 17:05:25 +08:00
    能贴一下 pom 文件吗,2023 年了 1G 大小的包也是不多见。
    kwh
        13
    kwh  
       2023-02-25 17:16:53 +08:00
    用 SpringBoot 写了一个操作系统?
    lower
        14
    lower  
       2023-02-25 17:26:56 +08:00
    是不是把上传的图片、附件等文件都存在资源目录了?
    开发测试的时候传了一大堆被打包进去了?
    zhaokun
        15
    zhaokun  
       2023-02-25 17:32:22 +08:00 via iPhone
    不是 springboot 的锅,去找造锅的去吧
    yidinghe
        16
    yidinghe  
       2023-02-25 17:46:49 +08:00 via Android
    有时候是设计架构的问题,加入了太多不必要的和重复的依赖关系,比如工具库就使用了 commons ,guava 和 hutool 三种,因为太多人经手开发,每个人又有不同的喜好。
    howfree
        17
    howfree  
       2023-02-25 17:59:24 +08:00
    不可能,绝对不可能
    allenzhangSB
        18
    allenzhangSB  
       2023-02-25 18:08:25 +08:00
    @yidinghe 加了再多依赖也不可能这么大, 这铁定自己的问题
    blankmiss
        19
    blankmiss  
       2023-02-25 18:11:26 +08:00
    和 4 楼一样 你是不是塞片在里面了
    besscroft
        20
    besscroft  
       2023-02-25 18:13:34 +08:00   ❤️ 3
    快看看源码里面有没有张小聋( doge
    wangxiaoaer
        21
    wangxiaoaer  
       2023-02-25 18:15:31 +08:00
    各位听我说一句,还有一种可能:这个应用可能是支持多个甲方复用的,个别定制内容比如 logo 这种不敏感的就懒得安装后手动配置,索性作为资源一起打包,启动的时候按照不同的 profile 启动。俺们之前干过,一个包 900 多 M 好像,但是运行不会占用那么高。
    dqzcwxb
        22
    dqzcwxb  
       2023-02-25 18:25:43 +08:00   ❤️ 1
    "占用内存 11G" 我猜你服务器是 32G 的
    wellerman
        23
    wellerman  
       2023-02-25 18:41:10 +08:00
    SSD 杀手,分包打,把依赖全部打成独立子包。
    yazinnnn
        24
    yazinnnn  
       2023-02-25 18:54:43 +08:00
    里面赛了一个实况足球吗?
    cslive
        25
    cslive  
       2023-02-25 18:55:42 +08:00
    不是不相信你,就是想开开眼界,pom 是啥样的
    Richardhtw
        26
    Richardhtw  
       2023-02-25 19:02:37 +08:00
    目测和 SpringBoot 没啥关系
    v2e0xAdmin2
        27
    v2e0xAdmin2  
       2023-02-25 19:06:01 +08:00
    和 springboot 没关系,springboot 可以几十兆,也可以几十 g 。
    Nazz
        28
    Nazz  
       2023-02-25 19:07:20 +08:00
    转 go 吧
    Nazz
        29
    Nazz  
       2023-02-25 19:08:22 +08:00
    就算是 Java, 11G 也太离谱了, 这是造了一个 redis 吗
    feitxue
        30
    feitxue  
       2023-02-25 19:55:06 +08:00
    还没看源码 就来发帖了。。。是来消遣大家的?
    anonymous2351d00
        31
    anonymous2351d00  
       2023-02-25 20:09:36 +08:00
    @javahuang 偶遇卷王
    TaylorBu
        32
    TaylorBu  
       2023-02-25 20:11:33 +08:00
    @k9982874 以前还真见过把游戏塞里边的
    iseki
        33
    iseki  
       2023-02-25 20:15:56 +08:00
    坐等后续,干什么能把 jar 包弄得这么大啊···
    不过想想我们的实现,如果把所有外部依赖放进 jar 包,运行时释放,可能也超过 1 个 G 了
    nkidgm
        34
    nkidgm  
       2023-02-25 20:21:15 +08:00
    估计是把静态资源打包进去了,包括图片,离线数据库之类的 asset 。
    silentsky
        35
    silentsky  
       2023-02-25 20:42:37 +08:00 via Android
    代码有问题吧 内存 11g 是少见
    hhjswf
        36
    hhjswf  
       2023-02-25 20:49:52 +08:00 via Android   ❤️ 2
    之前看某公众号说个梗,打完包传到内网,传了半天,仔细一看好几个 g ,解开一看里头有毛片。原来是每次半夜上线无聊就看片,有个人才传到 svn 上
    thetbw
        37
    thetbw  
       2023-02-25 20:58:09 +08:00
    jenkins 启动就占用 1g 多内存我就觉得够离谱得了,关键我后台还没跑任何构建
    Nnq
        38
    Nnq  
       2023-02-26 05:07:12 +08:00
    包的话 瘦身一下 base image 吧 内存的话 可以监控一下是预留内存 还是实际消耗内存大小
    superares
        39
    superares  
       2023-02-26 07:30:18 +08:00 via Android
    直接把 jar 包解压看下里面是啥不就知道了
    abcbuzhiming
        40
    abcbuzhiming  
       2023-02-26 11:51:06 +08:00
    @thetbw 有一说一 jenkins 启动确实要占这么大的内存
    lance26
        41
    lance26  
       2023-02-26 15:04:44 +08:00
    默认 jvm 占物理内存 1/4 ?
    loszhang
        42
    loszhang  
       2023-02-27 13:48:41 +08:00
    我怀疑你是黑子,但是我没有理由。就好像你说 springboot 占用内存 11G ,jar 包 1G ,但又不说到底是什么占用的。
    xiaocaiji111
        43
    xiaocaiji111  
       2023-03-01 10:26:13 +08:00
    1G ,老夫 7 年的代码白写了,开了眼界了今天
    jackiejkl
        44
    jackiejkl  
       2023-03-06 09:40:37 +08:00
    @loszhang 小黑子蒸虾头
    coderstory
        45
    coderstory  
       2023-03-08 10:00:07 +08:00
    jprofiles 分析下内存
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2694 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:31 · PVG 19:31 · LAX 03:31 · JFK 06:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.