[转帖]eclipse中的ini文件概述_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2323 | 回复: 0   主题: [转帖]eclipse中的ini文件概述        下一篇 
    本主题由 koei 于 2014-5-2 16:21:56 移动
happy
注册用户
等级:上尉
经验:681
发帖:38
精华:0
注册:2013-4-22
状态:离线
发送短消息息给happy 加好友    发送短消息息给happy 发消息
发表于: IP:您无权察看 2013-4-23 17:23:50 | [全部帖] [楼主帖] 楼主

eclipse里面有个initialize文件,这个文件可以定义一些eclipse启动和运行的环境。

新下载的eclipse,里面的ini文件如下:

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m


okay,在深入讲解之前,我们先解释一下此文件的语义:

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize //为Eclipse对非堆区的内存分配default的设置
256M //为Eclipse对非堆区的内存分配default的设置
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize //为Eclipse对非堆区的内存分配default的设置
256m //为Eclipse对非堆区的内存分配default的设置
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m //自定义堆区的内存分配,最小为40m
-Xmx512m //自定义堆区的内存分配,最大为521m


好,看完//,你应该知道我们这个ini文件,主要是对JVM的堆区和非堆区内存分配的设定。

那么什么是堆区和非堆区呢?在讲解原理之前先,做一个简单的实际优化工作。

无数的博文,告诉我们【 注意-vm得在-vmargs之前,才能生效,不然会误认为它也只是一个JVM参数】

1. 确切地指明JDK的路径,有助于你知道你的eclipse是运行在什么环境的。

2. 增加堆区和非堆区的内存分配(结合实际的硬件情况)

3. 增加对多核CPU的利用

可以参考官网:http://wiki.eclipse.org/Eclipse.ini

修改后的文件如下:

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:\Java\jdk1.6.0_24\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M


修改完以后,你可以启动eclipse,看是否成功,而且可以对比启动速度。

好设置完以后,稍稍讲一下什么是堆区(heap size)和非堆区(permanent size)。

英文已经很好地解释了两者的区别。

PermGen is the permanent generation of objects in the VM (Class names, internalized strings, objects that will never get garbage-collected).


JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、 JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。

该贴由koei转至本版2014-5-2 16:21:56




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论