• MyEclipse内存不足之JVM内存浅谈


    MyEclipse内存不足之JVM内存浅谈假如没有执行 配置的话,在运用 MyEclipse的经常出现如下图所示内存不足的提示。 
       
      MyEclipse内存不足之JVM内存浅谈图1 
      提示中说的很明白:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.”意思是说当前只有小于5%的非堆内存是空闲的。所以咱们只要将这个值配置大一些就可以了。 
      提示中给出了配置的参数: 
      -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:Maxp ermSize=128M 
      MyEclipse内存不足之JVM内存浅谈的多个疑问: 
      1. 各个参数的意思什么? 
      2. 为什么有的机器我将-Xmx和-XX:Maxp ermSize都配置为512M之后Eclipse可以启动,而有些机器无法 启动? 
      3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的配置 ? 
      下面咱们就MyEclipse内存不足之JVM内存一一对一些观点执行 回答 
      1. 各个参数的意思什么? 
      参数中-vmargs的意思是配置 JVM参数,所以后面的其实都是JVM的参数了,咱们最先明白一下JVM内存维护的机制,然后再解释每个参数代表的意思。 
      ◆堆(Heap)和非堆(Non-heap)内存 
      按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时建立的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM首要维护两种类型的内存:堆和非堆。基本来说堆就是Java代码可及的内存,是留给开发人员运用的;非堆就是JVM留给自己用的,所以要领区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和要领数据)以及要领和构造要领的代码都在非堆内存中。 
      ◆堆内存分配 
      JVM原始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限定 ;空余堆内存大于70%时,JVM会降低堆直到-Xms的最小限定。因此服务器通常配置 -Xms、-Xmx相等以防止在每次GC 后调整堆的大小。 
      ◆非堆内存分配 
      JVM运用 -XX:PermSize配置非堆内存原始值,默认是物理内存的1/64;由XX:Maxp ermSize配置最大非堆内存的大小,默认是物理内存的1/4。 

  • 相关阅读:
    存储过程 游标 有用
    Spring框架IOC容器和AOP解析 非常 有用
    业务逻辑;完成根据自动分单结果来决定进行的相关业务处理
    业务逻辑:完成基于分区关键字匹配的自动分单业务逻辑
    业务逻辑:完成基于CRM地址完全匹配的自动分单业务逻辑
    业务逻辑:完成客户下单后前台系统的数据处理并调用后台系统服务处理业务 webservice接口调用 有用
    Spring IOC 少
    Spring IOC 巨多 非常 有用
    Spring ioc
    LeetCode -- Remove Element
  • 原文地址:https://www.cnblogs.com/yongwuqing/p/5038050.html
Copyright © 2020-2023  润新知