知识大全 eclipse.ini内存设置各参数含义
Posted 知
篇首语:人生必须的知识就是引人向光明方面的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 eclipse.ini内存设置各参数含义相关的知识,希望对你有一定的参考价值。
vmargs Xms M Xmx M XX:PermSize= M XX:MaxPermSize= M 这里有几个问题 各个参数的含义什么? 为什么有的机器我将 Xmx和 XX:MaxPermSize都设置为 M之后Eclipse可以启动 而有些机器无法启动? 为何将上面的参数写入到eclipse ini文件Eclipse没有执行对应的设置? 下面我们一一进行回答 各个参数的含义什么? 参数中 vmargs的意思是设置JVM参数 所以后面的其实都是JVM的参数了 我们首先了解一下JVM内存管理的机制 然后再解释每个参数代表的含义 堆(Heap)和非堆(Non heap)内存 按照官方的说法 Java 虚拟机具有一个堆 堆是运行时数据区域 所有类实例和数组的内存均从此处分配 堆是在 Java 虚拟机启动时创建的 在JVM中堆之外的内存称为非堆内存(Non heap memory) 可以看出JVM主要管理两种类型的内存 堆和非堆 简单来说堆就是Java代码可及的内存 是留给开发人员使用的 非堆就是JVM留给自己用的 所以方法区 JVM内部处理或优化所需的内存(如JIT编译后的代码缓存) 每个类结构(如运行时常数池 字段和方法数据)以及方法和构造方法的代码都在非堆内存中 堆内存分配 JVM初始分配的内存由 Xms指定 默认是物理内存的 / JVM最大分配的内存由 Xmx指定 默认是物理内存的 / 默认空余堆内存小于 %时 JVM就会增大堆直到 Xmx的最大限制 空余堆内存大于 %时 JVM会减少堆直到 Xms的最小限制 因此服务器一般设置 Xms Xmx相等以避免在每次GC 后调整堆的大小 非堆内存分配 JVM使用 XX:PermSize设置非堆内存初始值 默认是物理内存的 / 由XX:MaxPermSize设置最大非堆内存的大小 默认是物理内存的 / JVM内存限制(最大值) 首先JVM内存限制于实际的最大物理内存(废话!呵呵) 假设物理内存无限大的话 JVM内存的最大值跟操作系统有很大的关系 简单的说就 位处理器虽然可控内存空间有 GB 但是具体的操作系统会给一个限制 这个限制一般是 GB GB(一般来说Windows系统下为 G G Linux系统下为 G G) 而 bit以上的处理器就不会有限制了 为什么有的机器我将 Xmx和 XX:MaxPermSize都设置为 M之后Eclipse可以启动 而有些机器无法启动? 通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种 堆内存和非堆内存 另外JVM最大内存首先取决于实际的物理内存和操作系统 所以说设置VM参数导致程序无法启动主要有以下几种原因 ) 参数中 Xms的值大于 Xmx 或者 XX:PermSize的值大于 XX:MaxPermSize ) Xmx的值和 XX:MaxPermSize的总和超过了JVM内存的最大限制 比如当前操作系统最大内存限制 或者实际的物理内存等等 说到实际物理内存这里需要说明一点的是 如果你的内存是 MB 但实际系统中用到的并不可能是 MB 因为有一部分被硬件占用了 为何将上面的参数写入到eclipse ini文件Eclipse没有执行对应的设置? 那为什么同样的参数在快捷方式或者命令行中有效而在eclipse ini文件中是无效的呢?这是因为我们没有遵守eclipse ini文件的设置规则 参数形如 项 值 这种形式 中间有空格的需要换行书写 如果值中有空格的需要用双引号包括起来 比如我们使用 vm C:\\Java\\jre \\bin\\javaw exe参数设置虚拟机 在eclipse ini文件中要写成这样 vm
C:\\Java\\jre \\bin\\javaw exe 按照上面所说的 最后参数在eclipse ini中可以写成这个样子 vmargs Xms M Xmx M XX:PermSize= M XX:MaxPermSize= M 实际运行的结果可以通过Eclipse中 Help About Eclipse SDK 窗口里面的 Configuration Details 按钮进行查看 另外需要说明的是 Eclipse压缩包中自带的eclipse ini文件内容是这样的 showsplash eclipse platform launcher XXMaxPermSize m vmargs Xms m Xmx m 其中–launcher XXMaxPermSize(注意最前面是两个连接线)跟 XX:MaxPermSize参数的含义基本是一样的 我觉得唯一的区别就是前者是eclipse exe启动的时候设置的参数 而后者是eclipse所使用的JVM中的参数 其实二者设置一个就可以了 所以这里可以把–launcher XXMaxPermSize和下一行使用#注释掉 其他的启动参数 如果你有一个双核的CPU 也许可以尝试这个参数:
XX:+UseParallelGC
cha138/Article/program/Java/ky/201311/28667相关参考
实例结构 oracle实例=内存结构+进程结构 oracle实例启动的过程其实就是oracle内存参数设置的值加载到内存中并启动相应的后台进程进行相关的服务过程 进程结构 oracle进程
近来公司技术研发都在问我关于内存参数如何设置可以优化Oracle的性能所以抽时间整理了这篇文档以做参考 目的: 希望通过整理此文档使公司同事对oracle内存结构有一个全面的了解并在实际的工作
oracle的版本的更新总是伴随着参数的变化并且越来越趋向于使得参数的设置更简单因为复杂的参数设置使得DBA们经常焦头烂额关于内存这部分的变化我们可以考察下面的参数事实上在i中数据库本身可以给出一
首先初始化参数的设置的方法就有很多种可以通过ALTERSYSTEMSETSCOPE=MEMORY的方式仅设置内存的修改也可以通过ALTERSYSTEMSETSCOPE=SPFILE只修改SPFIL
所谓会计账簿是由具有—定格式、相互联系的账页所组成,用来序时、分类地全面记录一个企业、单位经济业务事项的会计簿籍。设置和登记账簿是会计核算的一种专门方法,各单位通过设置和登记账簿,可以把分散在会计凭证
Oracle内存参数调优技术详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 目的 希望通过
Eclipse中进行JVM内存设置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
设置Java虚拟机(JVM)的内存问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
关于设置Java虚拟机(JVM)的内存问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近做
知识大全 Linux和Windows下的Tomcat JVM内存设置
Linux和Windows下的TomcatJVM内存设置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下