ivyDE解析后,Eclipse经常挂起(单个内核上的CPU使用率为100%)



在ivyDE解析单核消耗100%CPU后,我的Eclipse经常永远挂起,我需要在windows任务管理器上杀死它,重新启动并再次解析ivyDE(希望它不会再次挂起)我在Windows7上运行Eclipse。Java:1.8.0_25版本,带有-clean-vmargs-Xmx4g-Xms750m-XX:MaxPermSize=256m

线程转储:

    2015-12-10 11:44:34
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode):
    "Worker-384" #3588 prio=5 os_prio=0 tid=0x0000000044c5d000 nid=0x1d14 waiting for monitor entry [0x000000005e13f000]
    java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.core.internal.jobs.JobManager.nextJob(JobManager.java:980)
        - waiting to lock <0x00000006c07e1d78> (a java.lang.Object)
        at org.eclipse.core.internal.jobs.JobManager.startJob(JobManager.java:1488)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:214)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
    Locked ownable synchronizers:
        - None
    "Worker-383" #3587 prio=5 os_prio=0 tid=0x0000000044c5c000 nid=0x1ce8 runnable [0x0000000058b2e000]
    java.lang.Thread.State: RUNNABLE
        at org.eclipse.core.internal.jobs.InternalJob.addLast(InternalJob.java:168)
        at org.eclipse.core.internal.jobs.JobManager.nextJob(JobManager.java:1003)
        - locked <0x00000006c07e1d78> (a java.lang.Object)
        at org.eclipse.core.internal.jobs.JobManager.startJob(JobManager.java:1488)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:214)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
    Locked ownable synchronizers:
        - None
    "Worker-382" #3586 prio=5 os_prio=0 tid=0x000000002587e800 nid=0x1f9c waiting for monitor entry [0x000000005e38e000]
    java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.core.internal.jobs.JobManager.sleepHint(JobManager.java:1277)
        - waiting to lock <0x00000006c07e1d78> (a java.lang.Object)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:243)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
    Locked ownable synchronizers:
        - None
    "Worker-380" #3584 prio=5 os_prio=0 tid=0x0000000026609000 nid=0x8d0 waiting for monitor entry [0x000000005d1fe000]
    java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.core.internal.jobs.JobManager.nextJob(JobManager.java:980)
        - waiting to lock <0x00000006c07e1d78> (a java.lang.Object)
        at org.eclipse.core.internal.jobs.JobManager.startJob(JobManager.java:1488)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:221)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
    Locked ownable synchronizers:
        - None
    "RMI TCP Connection(9)-10.5.1.189" #3566 daemon prio=5 os_prio=0 tid=0x0000000030b4e000 nid=0x126c runnable [0x000000005d07e000]
    java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at java.io.BufferedInputStream.fill(Unknown Source)
        at java.io.BufferedInputStream.read(Unknown Source)
        - locked <0x00000007732ad870> (a java.io.BufferedInputStream)
        at java.io.FilterInputStream.read(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - <0x00000007ad6b9d20> (a java.util.concurrent.ThreadPoolExecutor$Worker)
    "Worker-365" #3565 prio=5 os_prio=0 tid=0x0000000030b4c800 nid=0x15d4 waiting for monitor entry [0x000000005ea8e000]
    java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.core.internal.jobs.JobManager.sleepHint(JobManager.java:1277)
        - waiting to lock <0x00000006c07e1d78> (a java.lang.Object)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:243)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
    Locked ownable synchronizers:
        - None
    "RMI TCP Accept-0" #3558 daemon prio=5 os_prio=0 tid=0x0000000044c5b800 nid=0x1b20 runnable [0x00000000520ee000]
    java.lang.Thread.State: RUNNABLE
        at java.net.DualStackPlainSocketImpl.accept0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
        at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
        at java.net.PlainSocketImpl.accept(Unknown Source)
        - locked <0x00000007acf45198> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(Unknown Source)
        at java.net.ServerSocket.accept(Unknown Source)
        at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - None

    "JavaScript indexing" #163 daemon prio=4 os_prio=-1 tid=0x00000000253b7000 nid=0x2e4 in Object.wait() [0x000000003990f000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.wst.jsdt.internal.core.search.processing.JobManager.run(JobManager.java:370)
        - locked <0x00000006c90e7e08> (a org.eclipse.wst.jsdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - None
    "qtp1870832419-100 Acceptor1 SelectChannelConnector@127.0.0.1:55716" #100 prio=5 os_prio=0 tid=0x0000000020e3d000 nid=0x1f00 waiting for monitor entry [0x000000003933f000]
    java.lang.Thread.State: BLOCKED (on object monitor)
        at sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source)
        - waiting to lock <0x00000006c8e01668> (a java.lang.Object)
        at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:109)
        at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:938)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - None
    "qtp1870832419-99 Acceptor0 SelectChannelConnector@127.0.0.1:55716" #99 prio=5 os_prio=0 tid=0x0000000020e39000 nid=0x18b4 runnable [0x000000003918e000]
    java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
        at sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source)
        - locked <0x00000006c8e01668> (a java.lang.Object)
        at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:109)
        at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:938)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - None
    "qtp1870832419-98 Selector1" #98 prio=5 os_prio=0 tid=0x0000000020e39800 nid=0x19d4 runnable [0x000000003904e000]
    java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
        - locked <0x00000006c8df5d90> (a sun.nio.ch.Util$2)
        - locked <0x00000006c8df5d80> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000006c8df5c20> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(Unknown Source)
        at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:569)
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - None
    "qtp1870832419-97 Selector0" #97 prio=5 os_prio=0 tid=0x0000000020e33000 nid=0x1184 runnable [0x0000000038ede000]
    java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
        - locked <0x00000006c8df21d0> (a sun.nio.ch.Util$2)
        - locked <0x00000006c8df21c0> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000006c8df2050> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(Unknown Source)
        at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:569)
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - None
    "Java indexing" #39 daemon prio=4 os_prio=-1 tid=0x0000000020e3d800 nid=0x11b0 in Object.wait() [0x0000000026e0e000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:382)
        - locked <0x00000006c48de448> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Unknown Source)
    Locked ownable synchronizers:
        - None
    "[ThreadPool Manager] - Idle Thread" #31 daemon prio=5 os_prio=0 tid=0x0000000020e35000 nid=0x1998 in Object.wait() [0x0000000027a5e000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
        - locked <0x00000006c2dda518> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
    Locked ownable synchronizers:
        - None
    "EMF Reference Cleaner" #29 daemon prio=5 os_prio=0 tid=0x0000000020e36800 nid=0x1f40 in Object.wait() [0x0000000026c4e000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x00000006c09ec738> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at org.eclipse.emf.common.util.CommonUtil$1ReferenceClearingQueuePollingThread.run(CommonUtil.java:70)
    Locked ownable synchronizers:
        - None
    "Provisioning Event Dispatcher" #24 daemon prio=5 os_prio=0 tid=0x0000000020e32000 nid=0x1a24 in Object.wait() [0x000000002199f000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
        - locked <0x00000006c1bb9808> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
    Locked ownable synchronizers:
        - None
    "Worker-JM" #22 prio=5 os_prio=0 tid=0x00000000208bc000 nid=0x1814 in Object.wait() [0x00000000240ef000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58)
        - locked <0x00000006c1848598> (a java.util.ArrayList)
    Locked ownable synchronizers:
        - None
    "Bundle File Closer" #18 daemon prio=5 os_prio=0 tid=0x0000000020892000 nid=0x14b8 in Object.wait() [0x0000000021baf000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
        - locked <0x00000006c1bb9a98> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
    Locked ownable synchronizers:
        - None
    "Start Level Event Dispatcher" #17 daemon prio=5 os_prio=0 tid=0x000000001f79b800 nid=0x1ebc in Object.wait() [0x0000000021a9f000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
        - locked <0x00000006c083e070> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
    Locked ownable synchronizers:
        - None
    "Framework Event Dispatcher" #15 daemon prio=5 os_prio=0 tid=0x000000001f743000 nid=0x1628 in Object.wait() [0x00000000217ff000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
        - locked <0x00000006c1bb9d98> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
    Locked ownable synchronizers:
        - None
    "Service Thread" #10 daemon prio=9 os_prio=0 tid=0x000000001d5ad000 nid=0x191c runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    Locked ownable synchronizers:
        - None
    "C1 CompilerThread3" #9 daemon prio=9 os_prio=2 tid=0x000000001d545000 nid=0x1acc waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    Locked ownable synchronizers:
        - None
    "C2 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x000000001d532800 nid=0x624 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    Locked ownable synchronizers:
        - None
    "C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x000000001d52a800 nid=0x19bc waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    Locked ownable synchronizers:
        - None
    "C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x000000001d525800 nid=0x1db4 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    Locked ownable synchronizers:
        - None
    "Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000000001d521000 nid=0x1cf0 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    Locked ownable synchronizers:
        - None
    "Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000000001d520000 nid=0x1910 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    Locked ownable synchronizers:
        - None
    "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x000000001c46c000 nid=0x1f28 in Object.wait() [0x000000001e8df000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x00000006c1caf248> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
    Locked ownable synchronizers:
        - None
    "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x000000001c463000 nid=0x11f8 in Object.wait() [0x000000001e54f000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x00000006c1b8d738> (a java.lang.ref.Reference$Lock)
    Locked ownable synchronizers:
        - None
    "main" #1 prio=6 os_prio=0 tid=0x0000000001ed8000 nid=0xdf8 waiting for monitor entry [0x00000000020ad000]
    java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.core.internal.jobs.JobManager.isIdle(JobManager.java:800)
        - waiting to lock <0x00000006c07e1d78> (a java.lang.Object)
        at org.eclipse.ui.internal.ide.application.IDEIdleHelper$1.run(IDEIdleHelper.java:150)
        at org.eclipse.swt.widgets.Display.runTimer(Display.java:4271)
        at org.eclipse.swt.widgets.Display.messageProc(Display.java:3358)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
    Locked ownable synchronizers:
        - None

我遇到了同样的问题,通过在启动期间将内存分配更改为Eclipse,我能够解决这个问题。我建议使用以下方法之一。

选项1:编辑eclipse.ini并更改以下参数。根据系统上可用的RAM内存增加此值

-Xms512m
-Xmx2048m

还要检查或审查安装的插件,这些插件对你没有用处,可以删除。这有助于提高性能(将减少Eclipse使用的内存)。

选项2:我发现Eclipse的Mar版本稍微慢一点。使用更稳定的开普勒或LUNA版本。

最新更新