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。

  • 相关阅读:
    python基础1.0
    时间紧的跟狗一样,不动摇坚持下去!
    STM32(十三)- SDIO_SD读写测试
    STM32(十二)- TIM基本定时器和高级定时器
    STM32(十一)- 串行FLASH文件系统FatFs
    STM32(十)- SPI
    STM32(九)- I2C
    STM32(八)- DMA和常用存储器
    STM32(七)- UART
    STM32(六)- SysTick
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/11314917.html
Copyright © 2011-2022 走看看