Trumeet
V2EX  ›  Java

Java 太胖?

  •  1
     
  •   Trumeet ·
    Trumeet · Jan 4, 2019 · 9007 views
    This topic created in 2862 days ago, the information mentioned may be changed or developed.

    楼主小土豆上跑两个 Java Netty 服务 + 邮件服务,RAM 快受不了了...... 有什么方式降低 Netty 内存占用吗?

    如上图,一大串全是一个程式。求教一下 V2er,因为都知道 V2er 是万能的( xd

    Supplement 1  ·  Jan 5, 2019

    多谢各位 V2er,目前做法是 -Xms64m 压缩一下内存使用。外加了一块 2G 的 Swap 以便备用。

    61 replies  •  2019-01-06 02:34:44 +08:00
    orangeade
    orangeade
    Jan 4, 2019 via Android
    1
    dir + mipush ?
    Java 就是以吃内存出名吧,要不换其他编程语言重写,对比看看?
    Mohanson
    Mohanson
    Jan 4, 2019 via Android❤️8
    2
    别问,问就 go
    chendy
    chendy
    Jan 4, 2019
    3
    加参数限制内存使用
    lihongjie0209
    lihongjie0209
    Jan 4, 2019
    4
    jvm 调优了解一下
    jason19659
    jason19659
    Jan 4, 2019
    5
    增加虚拟内存
    Trumeet
    Trumeet
    OP
    Jan 4, 2019❤️1
    6
    @Mohanson 就知道有吹 Go 的((
    Trumeet
    Trumeet
    OP
    Jan 4, 2019
    7
    @orangeade 诶诶诶... Dir + MiPush 还行吧((
    换语言成本太大了,刚开始转 Kotlin
    Trumeet
    Trumeet
    OP
    Jan 4, 2019
    8
    @chendy 这个什么操作?限制了不会影响正常功能?
    Trumeet
    Trumeet
    OP
    Jan 4, 2019
    9
    @lihongjie0209 吼高深哇...
    dk7952638
    dk7952638
    Jan 4, 2019
    10
    十倍的性能换十倍的开发效率,java 从一开始就是在性能和开发效率之间寻找一个平衡点
    lihongjie0209
    lihongjie0209
    Jan 4, 2019
    11
    @Trumeet 就是前面说的调整 jvm 参数, 复制粘贴就好了
    Tengdw
    Tengdw
    Jan 4, 2019
    12
    根据 gc 曲线调整下堆内存大小看行不
    victorywangzhcn
    victorywangzhcn
    Jan 4, 2019
    13
    看看 GraalVM ,现在能直接 native 化,非常小。传送门 https://github.com/cstancu/netty-native-demo
    sagaxu
    sagaxu
    Jan 4, 2019 via Android❤️1
    14
    Netty 会用堆外内存,所以实际占用比 Xmx 设置的高。建议开 gclog,然后尝试不同的 Xmx,观察 gc 时间间隔,选择能接受的最低间隔。
    chanin
    chanin
    Jan 4, 2019
    15
    又想简单方便,又想快速高效是不可能的,身为编程语言鄙视链条最低端的 java,需要接 RAM 受审判之眼
    Greendays
    Greendays
    Jan 4, 2019
    16
    别问,问就加 RAM😂
    Finest
    Finest
    Jan 4, 2019
    17
    Java 内存这块再省也省不了多少
    luosuosile
    luosuosile
    Jan 4, 2019
    18
    java 是编程语言 鄙视链最低端吗??我以为 java 至少在鄙视链中游呢
    XIVN1987
    XIVN1987
    Jan 4, 2019
    19
    是不是 JIT 的编程语言都比较费内存啊??
    sagaxu
    sagaxu
    Jan 4, 2019 via Android
    20
    @XIVN1987 JIT 会额外吃掉一些,gc 也会吃掉一些,spring 那套东西再吃个几十 MB。JAVA 程序,最低 100M 起步。
    auxox
    auxox
    Jan 4, 2019
    21
    没有设置 jvm 参数,那还不是有多少内存用多少内存
    passerbytiny
    passerbytiny
    Jan 4, 2019
    22
    请设置 JVM 参数(-Xmx),JVM 申请的是进程独占内存,如果不设置,默认情况下,按照最小 25%物理内存,最大 50%物理内存去申请,4 个 java 进程就 GG,不管你加多少内存条。
    loveCoding
    loveCoding
    Jan 4, 2019
    23
    -Xmx 加上堆内存限制,实际使用内存会比这个大一些,不复杂的话换 go 重写下也是可以的
    pursuer
    pursuer
    Jan 4, 2019
    24
    不知道跑的什么服务,好多进程,可以整合到一个 JVM 进程里运行吗?
    murmur
    murmur
    Jan 4, 2019
    25
    @luosuosile java 就是当年的美帝国主义,人人都在喊打倒美帝但是别人还是帝国啊
    misaka19000
    misaka19000
    Jan 4, 2019 via Android
    26
    用 go 重写就好了
    lrh3321
    lrh3321
    Jan 4, 2019 via Android
    27
    别问,问我就回用 c++重构一下。
    luozic
    luozic
    Jan 4, 2019 via iPhone
    28
    go 快速重构一个,除非业务复杂,甚至可以上 nginx +lua 搞定。
    hackerwin7
    hackerwin7
    Jan 4, 2019 via iPhone
    29
    JVM CDS
    huobazi
    huobazi
    Jan 4, 2019 via iPhone❤️1
    30
    换 dotnet core
    fuchaofather
    fuchaofather
    Jan 4, 2019
    31
    可以试下用 jvm 调优, 其实我个人觉得语言差别不是很大, 差的是写代码的
    byfar
    byfar
    Jan 4, 2019
    32
    今年都没什么人推 Rust 了呢
    lancelock
    lancelock
    Jan 4, 2019
    33
    你这什么字体啊?
    simple2025
    simple2025
    Jan 4, 2019
    34
    731/1.65,有没有用满,怕什么?空那么多内存做什么?
    sticnarf
    sticnarf
    Jan 4, 2019
    35
    LZ,你这些全是同一个进程的不同线程吧……总共占了 1.65G 的 8.9%也就是 150M 左右,这已经不能接受了吗?
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    36
    @lihongjie0209 好的,多谢
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    37
    @victorywangzhcn 这个我试过,Netty 跑不起来的(
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    38
    @sagaxu 好的,多谢(
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    39
    @luosuosile 是啊。。最低好歹得是拍黄片啊( xd
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    40
    @passerbytiny @loveCoding 多谢,我去看看
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    41
    @sticnarf 这只是一部分,往下滚(我一般这么叫,滚动的意思,不要误解 2333 )还有一堆((
    liangdu
    liangdu
    Jan 5, 2019 via Android
    42
    直接内存的默认大小为 xmx 减去一个 service,兄弟看着点调
    liangdu
    liangdu
    Jan 5, 2019 via Android
    43
    减去一个 servivor 空间的大小(上面拼写错了,不好意思)
    feiyuanqiu
    feiyuanqiu
    Jan 5, 2019
    44
    @lancelock #33 Operator Mono,这个字体最大的特色是它的斜体
    yanaraika
    yanaraika
    Jan 5, 2019 via Android
    45
    算一下内存条和你花时间重构哪个贵
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    46
    @yanaraika 服务器啊... 个人开发者花不起那个钱(
    yanaraika
    yanaraika
    Jan 5, 2019
    47
    @Trumeet 那就调-Xmx 吧,你这个估计对 GC stop 也不敏感
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    48
    @yanaraika 多谢,我看看
    realkenshinji
    realkenshinji
    Jan 5, 2019 via iPhone
    49
    @dk7952638 然而开发效率现在来看也不高了
    KgM4gLtF0shViDH3
    KgM4gLtF0shViDH3
    Jan 5, 2019 via iPhone
    50
    go 的开发效率真的不高……插入数组的方法都没有
    firebroo
    firebroo
    Jan 5, 2019 via Android
    51
    不要说语言差别不大,c 艹重构一下就知道语言差别尽然这么大
    dk7952638
    dk7952638
    Jan 5, 2019
    52
    @realkenshinji 这不你也知道是现在看来并不高,在当时那可是高的很。
    Camile
    Camile
    Jan 5, 2019
    53
    别问,问就 Rust
    nekoyaki
    nekoyaki
    Jan 5, 2019
    54
    htop 默认是把统一进程的不同线程全都显示出来的,你可以在 F2 ——》 Options 里把 Hide userland process threads 钩上,看到的结果就是单纯的“进程”了。不然就容易产生理解误区。
    Trumeet
    Trumeet
    OP
    Jan 5, 2019
    55
    @nekoyaki 这样啊.. 多谢(
    nekoyaki
    nekoyaki
    Jan 5, 2019
    56
    我比较奇怪的是为什么楼上只有一个人意识到这个问题是理解误区……
    zts1993
    zts1993
    Jan 5, 2019
    57
    yuuta 最胖!
    别问,问就换狗浪
    janxin
    janxin
    Jan 5, 2019
    58
    @byfar 好的,Rust 大法好,用 Rust 重写了解一下
    sjj050121014
    sjj050121014
    Jan 5, 2019
    59
    线程开那么多干嘛,浪费内存和 cpu 时间,减一半线程好过加内存
    applehater
    applehater
    Jan 6, 2019
    60
    @yanaraika 公司最近节流还真是从服务器减配开始了,真要去重构省资源来省钱。。。
    yanaraika
    yanaraika
    Jan 6, 2019 via Android
    61
    @applehater 工资太低 or 服务实在写的太烂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1514 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 94ms · UTC 23:12 · PVG 07:12 · LAX 15:12 · JFK 18:12
    ♥ Do have faith in what you're doing.