注册
登录
eclipse
Eclipse的最佳JVM设置是什么?
返回
Eclipse的最佳JVM设置是什么?
作者:
狗头军师
发布时间:
2025-03-03 04:36:02 (1天前)
Eclipse的最佳JVM设置是什么?
收藏
举报
2 条回复
1#
回复此人
v-star*위위
|
2020-07-31 17-26
Eclipse Helios 3.6和3.6.x设置 替代文字http://www.eclipse.org/home/promotions/friends-helios/helios.png 在对Eclipse Ganymede 3.4.x和Eclipse Galileo 3.5.x进行设置之后,下面是对Eclipse Helios 3.6.x 的“优化” eclipse.ini设置文件的深入了解: 根据运行时选项, 并利用太阳的Oracle JVM 1.6u21 B7,发布了七月二十七日电(可能涉及一些Sun专有选项)。 (通过“优化”,我的意思是能够在我们cr脚的工作站上运行全功能的Eclipse,其中包括2002年的一些旧P4、2Go RAM和XPSp3。但我也在Windows7上测试了相同的设置) Eclipse.ini 替代文字 警告:对于非Windows平台,请使用Sun专有选项-XX:MaxPermSize而不是Eclipse专有选项--launcher.XXMaxPermSize。 也就是说:除非您使用的是最新的jdk6u21 build 7。请参阅下面的Oracle部分。 ``` -data ../../workspace -showlocation -showsplash org.eclipse.platform --launcher.defaultAction openFile -vm C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll -vmargs -Dosgi.requiredJavaVersion=1.6 -Declipse.p2.unsignedPolicy=allow -Xms128m -Xmx384m -Xss4m -XX:PermSize=128m -XX:MaxPermSize=384m -XX:CompileThreshold=5 -XX:MaxGCPauseMillis=10 -XX:MaxHeapFreeRatio=70 -XX:+CMSIncrementalPacing -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+UseFastAccessorMethods -Dcom.sun.management.jmxremote -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons ``` 注意:将 调整p2.reconciler.dropins.directory到您选择的外部目录。 看到这个答案。这个想法是要能够独立于任何Eclipse安装将新插件拖放到目录中。 以下各节详细介绍了此eclipse.ini文件中的内容。 可怕的Oracle JVM 1.6u21(内部版本7)和Eclipse崩溃 Andrew Niefer确实使我警惕了这种情况,并写了一篇博客文章,内容涉及非标准的vm参数(-XX:MaxPermSize),并且可能导致其他供应商的vm 根本无法启动。 但是,该选项(--launcher.XXMaxPermSize)的eclipse版本不适用于新的JDK(6u21,除非您使用的是6u21 build 7,请参见下文)。 的 最后解决方案在Eclipse Wiki上,并且仅对于在6u21 pre build 7的Windows上的Helios: 下载固定的eclipse_1308.dll(2010年7月16日) 放进去 (eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503 而已。此处没有要调整的设置(再次,仅适用于预编译版本为6u21的Windows上的Helios )。 对于非Windows平台,您需要还原为Sun专有选项-XX:MaxPermSize。 该问题基于一种回归:由于Oracle在java.exe中重新命名,JVM识别失败,并在Eclipse上触发了错误319514。 安德鲁(Andrew)处理了错误320005-[启动器] --launcher.XXMaxPermSize: isSunVM对于Oracle应该返回true,但这仅对Helios 3.6.1有用。Eclipse的另一位撰稿人 弗朗西斯·厄普顿(Francis Upton)反思了所有情况。 u21b7更新,7月27日: Oracle已经撤消了下一个Java 6版本的更改,并且直到JDK 7才会再次实现。 如果使用jdk6u21 build 7,则可以还原为--launcher.XXMaxPermSize(eclipse选项)而不是-XX:MaxPermSize(非标准选项)。在C启动器填充程序中发生 的自动检测eclipse.exe仍将寻找“ Sun Microsystems”字符串,但是使用6u21b7,它现在将起作用-再次。 现在,我仍然保留该-XX:MaxPermSize版本(因为我不知道何时每个人都将启动正确的 JDK Eclipse )。 隐式`-startup`和`--launcher.library` 与先前的设置相反,这些模块的确切路径不再设置,这很方便,因为在不同的Eclipse 3.6.x版本之间它可能有所不同: 启动:如果未指定,则可执行文件将在plugins目录中查找org.eclipse.equinox.launcher具有最高版本的捆绑软件。 launcher.library:如果未指定,则可执行文件会在plugins目录中查找org.eclipse.equinox.launcher.[platform]具有最高版本的适当片段,并使用eclipse_*内部命名的共享库。 使用JDK6 现在明确需要JDK6来启动Eclipse: -Dosgi.requiredJavaVersion = 1.6 这个SO问题报告了在Mac OS上进行开发的积极可能性。 + UnlockExperimentalVMOptions 以下选项是Sun JVM的一些实验选项的一部分。 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:+UseFastAccessorMethods 在这篇博客文章中已经报道了它们,可能会加快Eclipse的速度。在此处以及官方Java Hotspot选项页面中, 请参阅所有JVM选项。 注意:这些选项的详细列表报告默认情况下可能处于活动状态。 UseFastAccessorMethods 另请参阅“更新您的JVM”: 提醒一下,G1是准备JDK 7的新垃圾收集器,但已用于u17的版本6中。 从命令行在Eclipse中打开文件 请参阅Andrew Niefer 的博客文章,报告此新选项: --launcher.defaultAction openFile 这告诉启动器,如果使用仅包含不以“ -” 开头的参数的命令行调用启动器,则应将这些参数视为跟在“ --launcher.openFile”之后。 eclipse myFile.txt 这是当您双击与eclipse相关的文件时,启动器将在Windows上收到的命令行,或者选择文件并选择“ Open With”或“ Send To” Eclipse。 相对路径将首先针对当前工作目录进行解析,其次针对eclipse程序目录进行解析。 请参阅错误301033以供参考。最初是错误4922(2001年10月,在9年后修复)。 p2和“未签名”对话框提示 如果您在安装许多插件时对这个对话框感到厌倦,请执行以下操作: 替代文字 ,添加您的eclipse.ini: -Declipse.p2.unsignedPolicy=allow 看到这个博客帖子从克里斯Aniszczy和bug报告235526。 我确实想说,安全研究支持以下事实:提示越少越好。 人们忽略了他们想完成的事情中突然出现的事情。 对于3.6,我们不应在流程中间弹出警告-不管我们简化多少,人们都只会忽略它们。 相反,我们应该收集所有的问题,都不会有问题的安装那些包,而是把在工作流中的用户返回到一个地步,他们可以修正内容-添加信任,配置安全策略更宽松,等等这就是所谓的“安全分期”。 ---------- http://www.eclipse.org/home/categories/images/wiki.gif 替代文字http://www.eclipse.org/home/categories/images/wiki.gif 替代文字http://www.eclipse.org/home/categories/images/wiki.gif 附加选项 这些选项不直接在eclipse.ini上面,但是如果需要可以派上用场。 Windows7上的`user.home`问题 当eclipse启动时,它将读取其密钥库文件(保存密码),该文件位于中user.home。 如果由于某种原因user.home不能将自己正确地解析为完整路径,则Eclipse将不会启动。 最初是在此SO问题中提出的,如果您遇到这种情况,则需要将密钥库文件重新定义为显式路径(开始时不再需要user.home进行解析) 添加您的eclipse.ini: -eclipse.keyring C:\eclipse\keyring.txt 此错误已由错误300577跟踪,已在其他SO问题中解决。 调试模式 等等,Eclipse中有多个设置文件。 如果添加到eclipse.ini选项中: -debug ,启用调试模式,Eclipse将寻找另一个设置文件:.options可以在其中指定一些OSGI选项的文件。 当您通过dropins文件夹添加新插件时,这很棒。 如本博客文章“ Dropins诊断 ”中所述,在您的.options文件中添加以下设置: org.eclipse.equinox.p2.core/debug=true org.eclipse.equinox.p2.core/reconciler=true P2将通知您在dropins/文件夹中找到了哪些捆绑软件,生成了哪些请求以及安装计划是什么。也许它不是对实际发生的事情以及出了什么问题的详细解释,但是它应该为您提供从何处开始的重要信息: 您的捆绑包在计划中吗? 是安装问题(P2故障) 还是包含您的功能并不是最佳选择? 来自Bug 264924-[reconciler]没有诊断dropins问题,最终解决了以下问题: Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5 这是一个有问题的配置,因为OCL依赖于缺少的EMF。 3.5M5无法提供对此问题的诊断。 开始蚀。 没有明显的问题。错误日志中没有任何内容。 Help / About / Plugin细节显示org.eclipse.ocl.doc,但没有org.eclipse.ocl。 Help / About / Configuration没有提及(诊断)细节 org.eclipse.ocl。 Help / Installation / Information Installed Software没有提及org.eclipse.ocl。 好的错误标记在哪里? 清单类路径 请参阅此博客文章: 在Galileo(又名Eclipse 3.5)中,JDT开始解析添加到项目构建路径中的库中的清单类路径。无论是直接将库添加到项目的构建路径中,还是通过类路径容器(例如,JDT提供的用户库设施或第三方实现的用户库设施)将其添加到项目的构建路径中,该方法都有效。 在Helios中,此行为已更改为从清单类路径解析中排除类路径容器。 这意味着您的某些项目可能不再在Helios中编译。 如果要还原为伽利略行为,请添加: -DresolveReferencedLibrariesForContainers=true 有关参考,请参见错误305037,错误313965和错误313890。 IPV4堆栈 这个SO问题提到了在不访问插件更新站点时的潜在修复: -Djava.net.preferIPv4Stack=true 此处提及的目的是为了防止它对您的配置有所帮助。 JVM1.7x64潜在的优化 本文报道: 作为记录,到目前为止,对于使用1.7 x64 JVM n Windows进行的基准测试,我发现的最快的选择是: -Xincgc -XX:-DontCompileHugeMethods -XX:MaxInlineSize=1024 -XX:FreqInlineSize=1024 但我仍在努力...
编辑
登录
后才能参与评论