美文网首页
JAVA进程一开始没有占用指定内存?

JAVA进程一开始没有占用指定内存?

作者: 南岩飞雪 | 来源:发表于2019-03-28 15:19 被阅读0次

问题

  • 明明指定了 Xms 和 Xmx 都是2048m,但是启动的时候并没有占用2个G


    image.png
  • 后来发现还有这么个JVM参数
    -XX:+AlwaysPreTouch

  • 具体的解释见链接

JAVA进程启动的时候,虽然我们可以为JVM指定合适的内存大小,但是这些内存操作系统并没有真正的分配给JVM,而是等JVM访问这些内存的时候,才真正分配,这样会造成以下问题。
1、GC的时候,新生代的对象要晋升到老年代的时候,需要内存,这个时候操作系统才真正分配内存,这样就会加大young gc的停顿时间;
2、可能存在内存碎片的问题。
可以在JVM启动的时候,配置-XX:+AlwaysPreTouch参数,
这样JVM就会先访问所有分配给它的内存,让操作系统把内存真正的分配给JVM.后续JVM就可以顺畅的访问内存了。

JVM调优-学习篇

相关文章

  • JAVA进程一开始没有占用指定内存?

    问题 明明指定了 Xms 和 Xmx 都是2048m,但是启动的时候并没有占用2个Gimage.png 后来发现还...

  • linux pmap命令

    查看进程123占用内存情况 查看进程123占用内存情况--详细 查看进程123占用内存情况--更详细

  • windows 常用命令

    windows杀指定进程 找占用指定端口的进程

  • 找到占用CPU最高的Java线程

    一、找到java进程id jps查看当前运行的java进程id 二、找到内存和CPU占用最高的线程pid 1,使用...

  • 线上问题排查:服务器篇

    1.线上问题进程排查 通常我们会在线上发现一些内存占用或者CPU占用比较高的进程.使用top指定,我们可以看到当前...

  • JAVA性能优化,让程序更快更稳定

    本文主要通过分析云系统遭遇的java进程内存溢出的问题,介绍java进程占用系统内存高时的排查方案及建议的解决方案...

  • JAVA资深工程师成长-技能框架(3) -JVM调优

    操作系统级别Java进程所占用的内存数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,内存调...

  • Android创建多进程

    为何要使用多进程 1.分散内存的占用我们知道Android系统对每个应用进程的内存占用是有限制的,而且占用内存越大...

  • jstack - 堆栈跟踪工具

    jstack一般用来查看指定线程(比如CPU较高、内存占用较高)的堆栈、查看死锁的原因。打印对指定进程的堆栈信息:...

  • 系统性能监控命令

    【toc】 1、pidstat命令 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设...

网友评论

      本文标题:JAVA进程一开始没有占用指定内存?

      本文链接:https://www.haomeiwen.com/subject/ntmqbqtx.html