gpt4 book ai didi

java - 优化 Eclipse

转载 作者:行者123 更新时间:2023-11-30 08:24:05 24 4
gpt4 key购买 nike

我正在为 Java EE 使用 eclipse IDE
版本:4.3.2
构建 ID:M20140221-1700

我的 Compaq 笔记本电脑是 Core i3 M350 @ 2.27 Ghz,8GB RAM,运行 Windows 8.1 Pro 64 位。
JDK 版本是 1.7.0_40 64bit

我已禁用验证检查和拼写检查,但我仍然注意到 IDE 非常滞后并且大部分时间都死机。

eclipse.ini 文件是:

-vm
C:\Java\jdk1.7.0_40\jre\bin\server\jvm.dll
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.7
-Xms128m
-Xmx768m
-XX:NewSize=8m
-XX:PermSize=512m
-XX:MaxPermSize=1024m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts


对我来说最好的 eclipse.ini 设置是什么?

--更新--
工作区日志文件的副本:

!SESSION 2014-04-21 18:23:18.129 -----------------------------------------------
eclipse.buildId=4.3.2.M20140221-1700
java.version=1.7.0_40
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64

!ENTRY org.eclipse.egit.ui 2 0 2014-04-21 18:23:31.716
!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level
Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory.
The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in
this system level configuration. The Git installation location can be configured on the
Team > Git > Configuration preference page's 'System Settings' tab.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

!ENTRY org.eclipse.egit.ui 2 0 2014-04-21 18:23:31.743
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\Amin'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

!ENTRY org.eclipse.jst.jsp.core 4 4 2014-04-21 18:23:42.500
!MESSAGE A workspace crash was detected. The previous session did not exit normally. Not using saved taglib indexes.

!ENTRY org.eclipse.core.jobs 4 2 2014-04-21 18:44:46.343
!MESSAGE An internal error occurred during: "Compacting resource model".
!STACK 0
java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.addEntry(HashMap.java:799)
at java.util.HashMap.put(HashMap.java:412)
at org.eclipse.core.internal.utils.StringPool.add(StringPool.java:54)
at org.eclipse.core.internal.dtree.AbstractDataTreeNode.storeStrings(AbstractDataTreeNode.java:575)
at org.eclipse.core.internal.dtree.DataTreeNode.storeStrings(DataTreeNode.java:338)
at org.eclipse.core.internal.dtree.AbstractDataTreeNode.storeStrings(AbstractDataTreeNode.java:580)
at org.eclipse.core.internal.dtree.DataTreeNode.storeStrings(DataTreeNode.java:338)
at org.eclipse.core.internal.dtree.AbstractDataTreeNode.storeStrings(AbstractDataTreeNode.java:580)
at org.eclipse.core.internal.dtree.DataTreeNode.storeStrings(DataTreeNode.java:338)
at org.eclipse.core.internal.dtree.AbstractDataTreeNode.storeStrings(AbstractDataTreeNode.java:580)
at org.eclipse.core.internal.dtree.DataTreeNode.storeStrings(DataTreeNode.java:338)
at org.eclipse.core.internal.dtree.AbstractDataTreeNode.storeStrings(AbstractDataTreeNode.java:580)
at org.eclipse.core.internal.dtree.DataTreeNode.storeStrings(DataTreeNode.java:338)
at org.eclipse.core.internal.dtree.AbstractDataTreeNode.storeStrings(AbstractDataTreeNode.java:580)
at org.eclipse.core.internal.dtree.DataTreeNode.storeStrings(DataTreeNode.java:338)
at org.eclipse.core.internal.dtree.DeltaDataTree.storeStrings(DeltaDataTree.java:956)
at org.eclipse.core.internal.watson.ElementTree.shareStrings(ElementTree.java:707)
at org.eclipse.core.internal.resources.SaveManager.shareStrings(SaveManager.java:1383)
at org.eclipse.core.internal.utils.StringPoolJob$1.run(StringPoolJob.java:131)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.utils.StringPoolJob.shareStrings(StringPoolJob.java:125)
at org.eclipse.core.internal.utils.StringPoolJob.run(StringPoolJob.java:102)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

!ENTRY org.eclipse.core.jobs 4 2 2014-04-21 18:44:50.985
!MESSAGE An internal error occurred during: "JSP Index Manager: Processing Resource Events".
!STACK 0
java.lang.OutOfMemoryError: Java heap space

!ENTRY org.eclipse.core.jobs 4 2 2014-04-21 18:44:54.450
!MESSAGE An internal error occurred during: "Workbench Auto-Save Background Job".
!STACK 0
java.lang.OutOfMemoryError: Java heap space
at org.eclipse.emf.ecore.util.EContentsEList.newNonResolvingListIterator(EContentsEList.java:92)
at org.eclipse.emf.ecore.util.EContentsEList.basicIterator(EContentsEList.java:269)
at org.eclipse.emf.ecore.util.EcoreUtil$ProperContentIterator.<init>(EcoreUtil.java:1294)
at org.eclipse.emf.ecore.util.EcoreUtil$4.getChildren(EcoreUtil.java:1201)
at org.eclipse.emf.common.util.AbstractTreeIterator.next(AbstractTreeIterator.java:138)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.attached(ResourceImpl.java:846)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl$ContentsEList.inverseAdd(ResourceImpl.java:411)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addUnique(NotifyingListImpl.java:312)
at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:303)
at org.eclipse.e4.ui.internal.workbench.ResourceHandler.createResourceWithApp(ResourceHandler.java:239)
at org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1218)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)


最佳答案

Eclipse 中的大量暂停/卡住通常表明 JVM 的垃圾收集器正在挣扎。 java.lang.OutOfMemoryError: Java heap space 异常解释了原因。您的 Eclipse 正(曾经)处于堆耗尽的边缘,而 JVM 很可能正在运行大量“完整”垃圾回收以试图保持 Eclipse 运行。

您以一种方式解决了问题...通过减少您打开的项目的总大小。

另一种解决方案是通过更改 -Xmx 选项来增加 Eclipse JVM 堆大小。假设您的系统有足够的物理内存,那么慷慨地提供给 Eclipse 的堆空间量是值得的。相反,如果真正的问题是您的堆太小,那么再多摆弄其他 GC 参数也无济于事......

关于java - 优化 Eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23194821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com