V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
liudaolunhuibl
V2EX  ›  Java

一个脑洞: JVM 是否可以把方法区在某种配置或者情况下放到磁盘上以此来减少内存空间

  •  
  •   liudaolunhuibl · May 13, 2021 · 2844 views
    This topic created in 1818 days ago, the information mentioned may be changed or developed.

    1 、操作系统的虚拟内存? 当然操作系统提供了虚拟内存的功能但是这个依赖于操作系统,能不能 JVM 自己来做这个事情。 2 、磁盘 IO 的速度比内存读写慢了很多? 实际上优化一下磁盘 IO 和用 SSD 的吧这两者的差别不会特别大,放在磁盘上就是“时间换空间”,如果你的系统对时间不是特别敏感但是内存特别大的话也许可以考虑? 3 、GC 遍历对象的时候如果有对象在磁盘会增加 GC 的时间和性能消耗? 所以目前考虑的是把不参与 GC 的方法区放上去

    14 replies    2021-05-13 13:51:25 +08:00
    GM
        1
    GM  
       May 13, 2021
    先问几个问题:
    方法区占用空间多少 M ?
    占用的这些内存空间,折算成本值人民币多少钱?
    为了省这点空间和金钱,损失巨大的性能提升,值不值?
    ch2
        2
    ch2  
       May 13, 2021
    你要自己处理缺页异常?
    privatetan
        3
    privatetan  
       May 13, 2021
    可以研读 java 虚拟机规范
    ignor
        4
    ignor  
       May 13, 2021 via Android
    什么样的系统方法区会占内存特别大?
    yitingbai
        5
    yitingbai  
       May 13, 2021
    class 能占用多少空间啊!!! 可以说是微乎其微, 占内存的都是数据, 你把数据都缓存到磁盘上, 按需加载不就行了
    nightwitch
        6
    nightwitch  
       May 13, 2021
    相当于要在用户态重新实现类似页表的机制。
    不具备可行性,因为内核查找页表是有硬件加速的,用软件模拟能慢出天际。
    surbomfla
        7
    surbomfla  
       May 13, 2021 via Android
    没必要,出了问题谁背锅。真的想要减少内存占用直接换语言
    charlie21
        8
    charlie21  
       May 13, 2021   ❤️ 1
    向落后进化
    liudaolunhuibl
        9
    liudaolunhuibl  
    OP
       May 13, 2021
    @yitingbai 方法区只有类信息?没有常量??
    liudaolunhuibl
        10
    liudaolunhuibl  
    OP
       May 13, 2021
    @privatetan jvms 上没有相关内容
    liudaolunhuibl
        11
    liudaolunhuibl  
    OP
       May 13, 2021
    @GM meta Space 默认最小是 20M 最大是无限大,一般设定都是 1024,1 个 G
    Kiske
        12
    Kiske  
       May 13, 2021
    Samsung 980 Pro 2TB 连续读取速度 7000MB/s 连续写入速度 5100MB/s
    芝奇 Trident Z DDR4 3200MHz 内存读取 30951MB/s 写入 31529MB/s
    liudaolunhuibl
        13
    liudaolunhuibl  
    OP
       May 13, 2021
    @Kiske 10 倍以内对于某些情况下是否是可以接受的?
    lxc404
        14
    lxc404  
       May 13, 2021
    @liudaolunhuibl 醒醒,10 倍是连续读写
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2557 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 05:28 · PVG 13:28 · LAX 22:28 · JFK 01:28
    ♥ Do have faith in what you're doing.