zoukankan      html  css  js  c++  java
  • JVM中内存的设置和分配(最大内存,总内存,剩余内存的区别)

     

    1、设置分配的内存大小

    	-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
    	-vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
    	-Xms128m JVM初始分配的堆内存
    	-Xmx512m JVM最大允许分配的堆内存,按需分配
    	-XX:PermSize=64M JVM初始分配的非堆内存
    	-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

    2、jvm虚拟机中内存的分配情况

    在java虚拟机运行中,所有类实例和数组的内存均从堆中分配,堆是运行时数据区域,随虚拟机的启动而创建。除了堆内存之外的内存称为非堆内存。

    因此jvm中内存主要分为堆内存和非堆内存。堆内存,就是java代码可及的内存,比如实例对象或数组等;非堆内存是jvm留给虚拟机自己用的,比如方法区、常数池、栈等。

    2.1、堆内存

    通过-Xms指定虚拟机初始分配的堆内存通常是物理内存的1/64;-Xmx指定最大分配内存,通常是物理内存的1/4.当空余堆内存小于40%时,jvm就会增大堆内存,直到达到-Xmx最大的限制;当空余内存大于70%时,就会减小内存直到达到-Xms最小限制。

    2.2、非堆内存

    java虚拟机使用 -XX:PermSize 设置非堆内存初始值,默认是物理内存的1/64;由 -XX:MaxPermSize 设置最大非堆内存的大小,默认是物理内存的1/4。

  • 相关阅读:
    Guns项目整体结构
    基于事件的NIO多线程服务器
    Reactor模式和NIO
    ConcurrentHashMap之实现细节
    C 语言的前世今生
    Netty系列之Netty高性能之道
    java synchronized详解
    生产者/消费者模式
    当spring 容器初始化完成后执行某个方法
    Linux系统管理员需要知道的16个服务器监控命令
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/11290252.html
Copyright © 2011-2022 走看看