博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyEclipse内存不足配置
阅读量:7167 次
发布时间:2019-06-29

本文共 1052 字,大约阅读时间需要 3 分钟。

在使用MyEclipse的过程中经常出现内存不足的提示:

提示中说的很明白:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.”意思是说当前只有小于5%的非堆内存是空闲的。所以我们只要将这个值设置大一些就可以了。

我们打开Eclipse目录。找到Eclipse.ini配置文件。

打开可以看到如下配置信息

-vmargs  -Xms64m  -Xmx256m

我们修改如下:

-vmargs                         

-Xms256m                //配置堆内存的最小值
-Xmx256m                 //配置堆内存的最大值
-XX:PermSize=128M        //配置非堆内存的最小值
-XX:MaxPermSize=128M   //配置非堆内存的最大值

参数中-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:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。

转自:

转载地址:http://jfmwm.baihongyu.com/

你可能感兴趣的文章
嵌入式 Linux进程间通信(二)——exec族函数
查看>>
Oracle数据库精讲课程之Rac管理最全课程
查看>>
我的友情链接
查看>>
Spring学习总结(4)——Spring AOP教程
查看>>
Jenkins自动化构建(一)
查看>>
log4j配置详解
查看>>
我的友情链接
查看>>
面试100题之8
查看>>
一些以太网非核心功能的标准
查看>>
oracle EBS 克隆之数据库克隆
查看>>
大型网站技术架构(八)网站的安全架构
查看>>
关于深度学习中优化问题的一些感受
查看>>
又写了一段Perl
查看>>
多态的静态绑定(CRTP手法)
查看>>
【python2】commands模块getstatusoutput函数的小问题
查看>>
oracle常用sql
查看>>
iOS之隐藏状态栏
查看>>
Script:ASM修复脚本,寻找LISTHEAD和Kfed源数据
查看>>
mysql ERROR 1045 (28000): Access denied for user解决方法
查看>>
locale::facet::_S_create_c_locale name not valid
查看>>