Hi
I've been using the Eclipse (3.2.1) SVN plugin (1.1.9) for a few weeks now and have noticed that it almost constantly consumes CPU (50% on both cores) on my Macbook Pro.
We have a rather strange setup, we have a large project that contains
modules (in the filesystem) which in turn (once the large project is
checked out into Eclipse) are turned into eclipse projects with the import wizard. It works ok, except that I have to use the Team Synchronizing perspective on the actual files inside the large project, I cannot synchronize the module projects.
Looking at thread dumps from time to time it's always something in subversion that's busy, from 1 to 10 minutes at a time. I often see a correlation between right click on something in the package explorer and CPU usage starting.
Full thread dump Java HotSpot(TM) Client VM (1.5.0_06-68 mixed mode):
"Worker-255" prio=5 tid=0x47700af0 nid=0x1e9d800 in Object.wait() [0xb0c8a000..0xb0c8ad10]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
- locked <0x08e51918> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-254" prio=5 tid=0x47700940 nid=0x1d7be00 in Object.wait() [0xb0e8e000..0xb0e8ed10]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
- locked <0x08e51918> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-253" prio=5 tid=0x477007c0 nid=0x19f7000 in Object.wait() [0xb0d8c000..0xb0d8cd10]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
- locked <0x08e51918> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-252" prio=5 tid=0x47700640 nid=0x18dcc00 in Object.wait() [0xb0d0b000..0xb0d0bd10]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
- locked <0x08e51918> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-251" prio=5 tid=0x477004c0 nid=0x1c55600 in Object.wait() [0xb070d000..0xb070dd10]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
- locked <0x08e51918> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-250" prio=5 tid=0x005fc990 nid=0x480d1600 in Object.wait() [0xb0890000..0xb0890d10]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
- locked <0x08e51918> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-249" prio=5 tid=0x005f7270 nid=0x1ee4200 runnable [0xb080f000..0xb080fd10]
at java.util.HashMap.hash(HashMap.java:264)
at java.util.HashMap.get(HashMap.java:320)
at java.util.Collections$SynchronizedMap.get(Collections.java:1979)
- locked <0x08e569e0> (a java.util.Collections$SynchronizedMap)
at org.eclipse.core.internal.resources.WorkspaceRoot.getProject(WorkspaceRoot.java:160)
at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:1575)
at org.eclipse.core.internal.resources.Container.getChildren(Container.java:103)
at org.eclipse.core.internal.resources.WorkspaceRoot.getProjects(WorkspaceRoot.java:182)
at org.tigris.subversion.subclipse.core.resources.SVNWorkspaceRoot.pathForLocation(SVNWorkspaceRoot.java:199)
at org.tigris.subversion.subclipse.core.resources.SVNWorkspaceRoot.getResourceFor(SVNWorkspaceRoot.java:385)
at org.tigris.subversion.subclipse.core.resources.ResourceStatus.getResource(ResourceStatus.java:424)
- locked <0x066fbf50> (a org.tigris.subversion.subclipse.core.resources.LocalResourceStatus)
at org.tigris.subversion.subclipse.core.status.SynchronizerSyncInfoCache.addStatus(SynchronizerSyncInfoCache.java:68)
at org.tigris.subversion.subclipse.core.status.StatusCacheManager.updateCache(StatusCacheManager.java:123)
at org.tigris.subversion.subclipse.core.status.StatusCacheManager.updateCache(StatusCacheManager.java:93)
at org.tigris.subversion.subclipse.core.status.StatusCacheManager.setStatuses(StatusCacheManager.java:237)
at org.tigris.subversion.subclipse.core.status.StatusCacheManager.basicGetStatus(StatusCacheManager.java:217)
at org.tigris.subversion.subclipse.core.status.StatusCacheManager.getStatus(StatusCacheManager.java:188)
at org.tigris.subversion.subclipse.core.status.StatusCacheManager.getStatus(StatusCacheManager.java:136)
at org.tigris.subversion.subclipse.core.resources.LocalResource.getStatus(LocalResource.java:206)
at org.tigris.subversion.subclipse.core.resources.LocalFolder.getStatus(LocalFolder.java:274)
at org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:114)
at org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:135)
at org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:135)
at org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:135)
at org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:135)
at org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:135)
at org.tigris.subversion.subclipse.core.resources.LocalFolder.members(LocalFolder.java:90)
at org.tigris.subversion.subclipse.core.resources.LocalFolder.isDirty(LocalFolder.java:138)
at org.tigris.subversion.subclipse.ui.decorator.SVNLightweightDecorator.isDirty(SVNLightweightDecorator.java:234)
at org.tigris.subversion.subclipse.ui.decorator.SVNLightweightDecorator.decorate(SVNLightweightDecorator.java:297)
at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:253)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:71)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:843)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:336)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:322)
at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:338)
at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:308)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005fb300 nid=0x1e96e00 in Object.wait() [0xb1317000..0xb1317d10]
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
- locked <0x0cd78a50> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005fa5e0 nid=0x1d89000 in Object.wait() [0xb149a000..0xb149ad10]
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
- locked <0x0cce9770> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005ecb70 nid=0x1f96800 in Object.wait() [0xb0992000..0xb0992d10]
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
- locked <0x0c98d2b8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Worker-228" prio=5 tid=0x005ef2e0 nid=0x1d8ca00 in Object.wait() [0xb0c09000..0xb0c09d10]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
- locked <0x08e51918> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005eccf0 nid=0x1f33400 in Object.wait() [0xb0e0d000..0xb0e0dd10]
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
- locked <0x0bebc8b0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005ec030 nid=0x1df5a00 in Object.wait() [0xb0a13000..0xb0a13d10]
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
- locked <0x0bca1690> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005e9d80 nid=0x1c83000 in Object.wait() [0xb0911000..0xb0911d10]
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
- locked <0x0b8ac120> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x005e55e0 nid=0x1e26000 in Object.wait() [0xb0488000..0xb0488d10]
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
- locked <0x0b831f80> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Java indexing" daemon prio=4 tid=0x0052f9c0 nid=0x191d200 in Object.wait() [0xb078e000..0xb078ed10]
at java.lang.Object.wait(Native Method)
- waiting on <0x09ce9ee8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Object.wait(Object.java:474)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349)
- locked <0x09ce9ee8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Thread.java:613)
"Start Level Event Dispatcher" daemon prio=5 tid=0x00510f20 nid=0x1867a00 in Object.wait() [0xb060b000..0xb060bd10]
at java.lang.Object.wait(Native Method)
- waiting on <0x08d23310> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:474)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
- locked <0x08d23310> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:287)
"Framework Event Dispatcher" daemon prio=5 tid=0x00510970 nid=0x1866800 in Object.wait() [0xb058a000..0xb058ad10]
at java.lang.Object.wait(Native Method)
- waiting on <0x08d23378> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:474)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
- locked <0x08d23378> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:287)
"State Data Manager" daemon prio=5 tid=0x0050fc20 nid=0x1848e00 waiting on condition [0xb0509000..0xb0509d10]
at java.lang.Thread.sleep(Native Method)
at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:297)
at java.lang.Thread.run(Thread.java:613)
"Low Memory Detector" daemon prio=5 tid=0x00508fe0 nid=0x1819000 runnable [0x00000000..0x00000000]
"CompilerThread0" daemon prio=9 tid=0x00508540 nid=0x1818c00 waiting on condition [0x00000000..0xb030574c]
"Signal Dispatcher" daemon prio=9 tid=0x005080a0 nid=0x1811a00 waiting on condition [0x00000000..0x00000000]
"Finalizer" daemon prio=8 tid=0x005076e0 nid=0x1814200 in Object.wait() [0xb0203000..0xb0203d10]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x08d23608> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x005072e0 nid=0x1813e00 in Object.wait() [0xb0182000..0xb0182d10]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x08d23688> (a java.lang.ref.Reference$Lock)
"main" prio=6 tid=0x00501580 nid=0xa000cfc0 runnable [0xbfffd000..0xbfffe3bc]
at org.eclipse.swt.internal.carbon.OS.ReceiveNextEvent(Native Method)
at org.eclipse.swt.widgets.Display.sleep(Display.java:3782)
at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:333)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1915)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
"VM Thread" prio=9 tid=0x00506ab0 nid=0x1813a00 runnable
"VM Periodic Task Thread" prio=9 tid=0x00509b40 nid=0x1819400 waiting on condition
"Exception Catcher Thread" prio=10 tid=0x005017a0 nid=0x1804e00 runnable
Any ideas?
Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subclipse.tigris.org
For additional commands, e-mail: users-help@subclipse.tigris.org
Received on Tue Jan 30 10:55:04 2007