Community
Participate
Working Groups
Just installed Juno for J2EE on my new machine, quad-core Windows 7 with 8 GB memory. Switching between editors, especially XML editors is very slow -- consistently 3 seconds... When switching between Java and XML editors, for most of this 3 seconds I can see two XML icons on the toolbar flickering on & off! 'Open Resource' Ctrl-Shift-R or 'Open Type' Crl-Shift-T also take 1.5-2 seconds to come up, and 1 second to go away. I've added -debug to eclipse.ini & tried stacktracing it a couple of times. While I'm waiting, there's a brief burst of CPU (but only on one core). I think it might be parse tree/ UI update bound. Here's an example switching between XML editors: "main" prio=6 tid=0x0000000001ffc800 nid=0x1650 runnable [0x00000000023db000] java.lang.Thread.State: RUNNABLE at org.eclipse.swt.internal.win32.OS.GetMenuItemInfoW(Native Method) at org.eclipse.swt.internal.win32.OS.GetMenuItemInfo(OS.java:2729) at org.eclipse.swt.widgets.MenuItem.setEnabled(MenuItem.java:716) at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.upd ateMenuItem(HandledContributionItem.java:518) at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.upd ate(HandledContributionItem.java:473) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:885) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:885) at org.eclipse.ui.internal.Workbench.updateActiveWorkbenchWindowMenuMana ger(Workbench.java:2910) at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:2896) at org.eclipse.ui.internal.Workbench$1.bindingManagerChanged(Workbench.j ava:2891) at org.eclipse.jface.bindings.BindingManager.fireBindingManagerChanged(B indingManager.java:900) at org.eclipse.jface.bindings.BindingManager.setActiveBindings(BindingMa nager.java:2176) at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingMa nager.java:1742) at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(Bindi ngManager.java:689) at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerC hanged(ContextManager.java:165) at org.eclipse.core.commands.contexts.ContextManager.setActiveContextIds (ContextManager.java:295) at org.eclipse.e4.ui.internal.services.ContextContextService.getActiveCo ntextIds(ContextContextService.java:83) at org.eclipse.ui.internal.contexts.ContextService.getActiveContextIds(C ontextService.java:256) at org.eclipse.ui.internal.contexts.ActiveContextSourceProvider.getCurre ntState(ActiveContextSourceProvider.java:68) at org.eclipse.ui.internal.contexts.ActiveContextSourceProvider.contextM anagerChanged(ActiveContextSourceProvider.java:50) at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerC hanged(ContextManager.java:165) at org.eclipse.core.commands.contexts.ContextManager.setActiveContextIds (ContextManager.java:295) at org.eclipse.e4.ui.bindings.internal.BindingServiceImpl.setContextIds( BindingServiceImpl.java:237) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequest or.java:56) at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextIn jectionListener.update(ContextObjectSupplier.java:88) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:107) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.e4.ui.internal.services.ContextContextService.activateCon text(ContextContextService.java:53) at org.eclipse.ui.internal.contexts.ContextService$UpdateExpression$1.ru n(ContextService.java:128) at org.eclipse.e4.core.contexts.RunAndTrack.runExternalCode(RunAndTrack. java:53) - locked <0x00000000a473eab0> (a org.eclipse.ui.internal.contexts.Contex tService$UpdateExpression) at org.eclipse.ui.internal.contexts.ContextService$UpdateExpression.chan ged(ContextService.java:126) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:110) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.e4.core.internal.contexts.EclipseContext$1.changed(Eclips eContext.java:751) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:110) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.ui.internal.WorkbenchPage.updateActivePartSources(Workben chPage.java:275) at org.eclipse.ui.internal.WorkbenchPage.updateActivations(WorkbenchPage .java:247) at org.eclipse.ui.internal.WorkbenchPage.access$15(WorkbenchPage.java:24 0) at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(Wo rkbenchPage.java:169) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$2.run(PartServic eImpl.java:191) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivate d(PartServiceImpl.java:189) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.setPart(PartServ iceImpl.java:164) at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequest or.java:56) at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextIn jectionListener.update(ContextObjectSupplier.java:88) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:107) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.e4.core.internal.contexts.EclipseContext.activate(Eclipse Context.java:630) at org.eclipse.e4.core.internal.contexts.EclipseContext.activateBranch(E clipseContext.java:635) at org.eclipse.e4.ui.internal.workbench.PartActivationHistory.activate(P artActivationHistory.java:52) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartSer viceImpl.java:561) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartSer viceImpl.java:532) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartSer viceImpl.java:521) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.hidePart(PartSer viceImpl.java:1112) at org.eclipse.ui.internal.WorkbenchPage.hidePart(WorkbenchPage.java:148 7) at org.eclipse.ui.internal.WorkbenchPage.hidePart(WorkbenchPage.java:144 0) at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java :1410) at org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java: 1532) at org.eclipse.ui.internal.CloseEditorHandler.execute(CloseEditorHandler .java:47) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.ja va:290) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProx y.java:76) at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequest or.java:56) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(Injecto rImpl.java:229) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java :210) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextIn jectionFactory.java:131) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandl er(HandlerServiceImpl.java:171) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(K eyBindingDispatcher.java:276) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBinding Dispatcher.java:494) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent( KeyBindingDispatcher.java:545) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenc eBindings(KeyBindingDispatcher.java:366) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBind ingDispatcher.java:313) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.ha ndleEvent(KeyBindingDispatcher.java:82) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1521) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4976) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2546) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(Pa rtRenderingEngine.java:1029) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.ja va:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(Part RenderingEngine.java:923) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Wor kbench.java:86) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.ja va:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav a:543) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEAppli cation.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandl e.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli cation(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ec lipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:353) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:180) 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:629) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) at org.eclipse.equinox.launcher.Main.run(Main.java:1438) at org.eclipse.equinox.launcher.Main.main(Main.java:1414) Here's an example switching between Java and XML editors: "main" prio=6 tid=0x0000000001ffc800 nid=0x1650 runnable [0x00000000023db000] java.lang.Thread.State: RUNNABLE at org.eclipse.swt.internal.win32.OS.GetMenuItemInfoW(Native Method) at org.eclipse.swt.internal.win32.OS.GetMenuItemInfo(OS.java:2729) at org.eclipse.swt.widgets.MenuItem.setEnabled(MenuItem.java:716) at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.upd ateMenuItem(HandledContributionItem.java:518) at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.upd ate(HandledContributionItem.java:473) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:885) at org.eclipse.jface.action.MenuManager.update(MenuManager.java:885) at org.eclipse.ui.internal.Workbench.updateActiveWorkbenchWindowMenuMana ger(Workbench.java:2910) at org.eclipse.ui.internal.Workbench.access$0(Workbench.java:2896) at org.eclipse.ui.internal.Workbench$1.bindingManagerChanged(Workbench.j ava:2891) at org.eclipse.jface.bindings.BindingManager.fireBindingManagerChanged(B indingManager.java:900) at org.eclipse.jface.bindings.BindingManager.setActiveBindings(BindingMa nager.java:2176) at org.eclipse.jface.bindings.BindingManager.recomputeBindings(BindingMa nager.java:1742) at org.eclipse.jface.bindings.BindingManager.contextManagerChanged(Bindi ngManager.java:689) at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerC hanged(ContextManager.java:165) at org.eclipse.core.commands.contexts.ContextManager.setActiveContextIds (ContextManager.java:295) at org.eclipse.e4.ui.internal.services.ContextContextService.getActiveCo ntextIds(ContextContextService.java:83) at org.eclipse.ui.internal.contexts.ContextService.getActiveContextIds(C ontextService.java:256) at org.eclipse.ui.internal.contexts.ActiveContextSourceProvider.getCurre ntState(ActiveContextSourceProvider.java:68) at org.eclipse.ui.internal.contexts.ActiveContextSourceProvider.contextM anagerChanged(ActiveContextSourceProvider.java:50) at org.eclipse.core.commands.contexts.ContextManager.fireContextManagerC hanged(ContextManager.java:165) at org.eclipse.core.commands.contexts.ContextManager.setActiveContextIds (ContextManager.java:295) at org.eclipse.e4.ui.bindings.internal.BindingServiceImpl.setContextIds( BindingServiceImpl.java:237) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequest or.java:56) at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextIn jectionListener.update(ContextObjectSupplier.java:88) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:107) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.e4.ui.internal.services.ContextContextService.activateCon text(ContextContextService.java:53) at org.eclipse.ui.internal.contexts.ContextService$UpdateExpression$1.ru n(ContextService.java:128) at org.eclipse.e4.core.contexts.RunAndTrack.runExternalCode(RunAndTrack. java:53) - locked <0x00000000fbb09bc0> (a org.eclipse.ui.internal.contexts.Contex tService$UpdateExpression) at org.eclipse.ui.internal.contexts.ContextService$UpdateExpression.chan ged(ContextService.java:126) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:110) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.e4.core.internal.contexts.EclipseContext$1.changed(Eclips eContext.java:751) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:110) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.ui.internal.WorkbenchPage.updateActivePartSources(Workben chPage.java:275) at org.eclipse.ui.internal.WorkbenchPage.updateActivations(WorkbenchPage .java:247) at org.eclipse.ui.internal.WorkbenchPage.access$15(WorkbenchPage.java:24 0) at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(Wo rkbenchPage.java:169) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$2.run(PartServic eImpl.java:191) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivate d(PartServiceImpl.java:189) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.setPart(PartServ iceImpl.java:164) at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequest or.java:56) at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextIn jectionListener.update(ContextObjectSupplier.java:88) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update( TrackableComputationExt.java:107) at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled (EclipseContext.java:318) at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseConte xt.java:332) at org.eclipse.e4.core.internal.contexts.EclipseContext.activate(Eclipse Context.java:630) at org.eclipse.e4.core.internal.contexts.EclipseContext.activateBranch(E clipseContext.java:635) at org.eclipse.e4.ui.internal.workbench.PartActivationHistory.activate(P artActivationHistory.java:52) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartSer viceImpl.java:561) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartSer viceImpl.java:532) at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activat e(AbstractPartRenderer.java:105) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$1.h andleEvent(ContributedPartRenderer.java:61) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058) at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1447) at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2836) at org.eclipse.swt.widgets.Widget.wmSetFocus(Widget.java:2417) at org.eclipse.swt.widgets.Control.WM_SETFOCUS(Control.java:5152) at org.eclipse.swt.widgets.Canvas.WM_SETFOCUS(Canvas.java:448) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4598) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4976) at org.eclipse.swt.internal.win32.OS.SetFocus(Native Method) at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1098) at org.eclipse.swt.widgets.Control.setFocus(Control.java:3303) at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1040) at org.eclipse.ui.texteditor.AbstractTextEditor.setFocus(AbstractTextEdi tor.java:6210) at org.eclipse.ui.texteditor.StatusTextEditor.setFocus(StatusTextEditor. java:122) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.setFocus(JavaEditor .java:2389) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.delegateSe tFocus(CompatibilityPart.java:178) at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequest or.java:56) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(Injecto rImpl.java:229) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(Injecto rImpl.java:235) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java :206) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextIn jectionFactory.java:106) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$2.s etFocus(ContributedPartRenderer.java:101) at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$9.mouseUp(Sta ckRenderer.java:941) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java: 220) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(Pa rtRenderingEngine.java:1029) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.ja va:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(Part RenderingEngine.java:923) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Wor kbench.java:86) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.ja va:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav a:543) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEAppli cation.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandl e.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli cation(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ec lipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:353) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:180) 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:629) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) at org.eclipse.equinox.launcher.Main.run(Main.java:1438) at org.eclipse.equinox.launcher.Main.main(Main.java:1414) "VM Thread" prio=10 tid=0x000000000a7e2800 nid=0x1ab4 runnable "GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000002045000 nid=0x1698 runnabl e "GC task thread#1 (ParallelGC)" prio=6 tid=0x0000000002046800 nid=0x8b4 runnable "GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000002048000 nid=0x15d4 runnabl e "GC task thread#3 (ParallelGC)" prio=6 tid=0x000000000204a000 nid=0x19dc runnabl e "VM Periodic Task Thread" prio=10 tid=0x000000000a885800 nid=0x1114 waiting on c ondition JNI global references: 541 Heap PSYoungGen total 480256K, used 140675K [0x00000000e0000000, 0x00000000ff4e 0000, 0x0000000100000000) eden space 453120K, 28% used [0x00000000e0000000,0x00000000e7c0fe80,0x00000000 fba80000) from space 27136K, 50% used [0x00000000fba80000,0x00000000fc7d1098,0x00000000f d500000) to space 26560K, 0% used [0x00000000fdaf0000,0x00000000fdaf0000,0x00000000ff 4e0000) ParOldGen total 217280K, used 185659K [0x00000000a0000000, 0x00000000ad43 0000, 0x00000000e0000000) object space 217280K, 85% used [0x00000000a0000000,0x00000000ab54ed80,0x000000 00ad430000) PSPermGen total 127808K, used 112460K [0x0000000090000000, 0x0000000097cd 0000, 0x00000000a0000000) object space 127808K, 87% used [0x0000000090000000,0x0000000096dd3000,0x000000 0097cd0000)
Bogdan, here's some more data on the switching between 2 XML editors. PW
Created attachment 222310 [details] Flickering of overlay icon between parts in sash drag handle What I also see when opening pom.xml files is a flickering of an information overlay icon in the sash between the parts. I have made a swf movie to show what it does. Open the file with a browser in windows.
*** Bug 392061 has been marked as a duplicate of this bug. ***
Thomas, what type of XML editor are you using? Is it the pom.xml editor like Wim mentions? I am seeing the same thing you see with the Dali JPA persistence.xml editor. I see the 2 XML toolbar buttons ('Turn Grammar Constraints Off' and 'Reload Dependencies') made visible and invisible multiple times when switching between 2 persistence.xml editors with the Source tab selected. I do not see this issue if I use the regular XML editor (Open With -> XML Editor).
(In reply to comment #4) > I do not see this issue if I use the regular XML editor (Open With -> XML > Editor). Replying to my own comment, I *do* see the issue with the regular XML editor when switching between a java editor and the XML editor. It is easy to reproduce with Juno J2EE SR1. I created a Java Project and created a Java class and 2 new empty XML files. I open the java file and 1 XML file and the problem does not exist, switching back and forth is quick. But then open the second XML file and then switch to the Java file. You will see those 2 toolbar icons flickering. The more XML files you open the worse the problem gets switching from XML to Java and switching between XML editors gets very slow. I put a println in UIElementImpl.setVisible(boolean) to easily see the problem of the particular 'ToggleGrammarConstraints' toolbar button having it's visbility state set back and forth. if (oldVisible != visible && getElementId() != null && getElementId().equals("ToggleGrammarConstraints")) { System.out.println(getElementId()); }
Hi Karen, thanks.. No I'm not editing pom.xml files, I'm editing Hibernate .hbm.xml files and web.xml files. Since this problem appears to be either parse tree/ or UI update-bound, there may possibly be different behaviour, depending on whether/ what XML schemas or DTDs are defined? It's interesting what you see. At the moment I'm back on Indigo & performance is perfect, once again. Thanks for your comment & efforts to investigate!
(In reply to comment #5) > (In reply to comment #4) I also see the same toolbar icons flickering when switching between pom.xml files.
I also see the flickering icon. But only when I open a pom.xml. Other XMLs do not seem to cause the flickering and are not that slow.
With four XML editors open and one Java editor, ToolBarContributionRecord's updateVisibility(IEclipseContext) method is called over 400 times when you switch between the XML and Java editor. Switching from one XML editor to another seems to give numbers close to 900. I believe this is the tool bar that's being spammed in question. <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions"> <toolbar id="org.eclipse.wst.xml.ui.design.DesignToolBar" label="%editor_grammar_toolbar"> <separator name="sed.tabletree.separator.1" visible="true"> </separator> <command commandId="org.eclipse.wst.xml.ui.disable.grammar.constraints" icon="icons/full/etool16/constrainon.gif" id="ToggleGrammarConstraints" style="push" tooltip="%Constraints_name"> <visibleWhen checkEnabled="false"> <reference definitionId="org.eclipse.wst.xml.ui.grammar"> </reference> </visibleWhen> </command> <command commandId="org.eclipse.wst.xml.ui.reload.dependencies" icon="icons/full/etool16/rldgrmr.gif" id="ReloadDependencies" style="push"> <visibleWhen checkEnabled="false"> <reference definitionId="org.eclipse.wst.xml.ui.dependencies"> </reference> </visibleWhen> </command> </toolbar> </menuContribution>
(In reply to comment #9) I can confirm: as mentioned in bug 391127 comment 12 f. I saw these exact two buttons dancing for a long time while switching editors.
Confirming this but in every single installation (Windows 7 & Ubuntu 12.04). It has been happening with any kind of XML file. Files I tried are: tomcat web.xml various pom.xml custom xml files with and without xsd in them I also see the flickering of the "Reload dependencies" toolbar button.
Bogdan released an improvement for XML editor switching: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=478ae0a1df96c36245c91518ba2975b3351da433 PW
(In reply to comment #12) > Bogdan released an improvement for XML editor switching: > > http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/ > ?id=478ae0a1df96c36245c91518ba2975b3351da433 > > PW Hooray, it works!
Things are looking much better for me so far! Kudos to the platform team! Paul, I've been investigating handlers pretty closely recently (stackoverflow :-)). I happened upon the wst.xml handler implementations and found the following. Isn't it pointless to define the exact same thing for activeWhen and enabledWhen? I can open a bug against wtp if necessary. I would think they should remove the enabledWhen. If I remove that I don't get the XmlEditorTester pinged constantly with the toolbar timer thing. <handler class="org.eclipse.wst.xml.ui.internal.handlers.ReloadDependenciesHandler" commandId="org.eclipse.wst.xml.ui.reload.dependencies"> <activeWhen> <reference definitionId="org.eclipse.wst.xml.ui.dependencies"/> </activeWhen> <enabledWhen> <reference definitionId="org.eclipse.wst.xml.ui.dependencies"/> </enabledWhen> </handler>
I have entered bug 394221 against WTP Source Editing for the problem in comment 14. Is there some subtle difference between activeWhen/enabledWhen that I am missing? Any reason one would want to put the same expression in both?
(In reply to comment #15) > I have entered bug 394221 against WTP Source Editing for the problem in > comment 14. Is there some subtle difference between activeWhen/enabledWhen > that I am missing? Any reason one would want to put the same expression in > both? The distinction is subtle. activeWhen controls when a handler is available to be executed. enabledWhen basically says whether or not the handler can operate given the current state of the system. i.e. my copyHandler is active while my editor is active, but only enabled if a leaf node is selected. I personally don't see the value of making activeWhen==enabledWhen, as the handler is a non-participant when activeWhen returns false, and enabled the entire while it could be active, but maybe there's another reason. PW
(In reply to comment #16) > The distinction is subtle. activeWhen controls when a handler is available > to be executed. enabledWhen basically says whether or not the handler can > operate given the current state of the system. > > i.e. my copyHandler is active while my editor is active, but only enabled if > a leaf node is selected. > > PW So why not make my copyHandler active when my editor is active *and* a leaf node is selected?
(In reply to comment #17) > > So why not make my copyHandler active when my editor is active *and* a leaf > node is selected? It's partly because they're semantically different aspects of the handler. This leads to certain side-effects: activeWhen == false means that another handler that can be active can be choosen by the framework to handle the command. activeWhen==true/enabledWhen==false means that this handler is the correct one, and the command shouldn't do anything. PW
*** Bug 393981 has been marked as a duplicate of this bug. ***
Tested this. Switching XML editors is very fast now. Thanks for this work!
How do I actually use this fix (apart from waiting for the next release)? Is there an (milestone / nightly) update site that I can use on my 4.2SR1 (JEE) version perhaps?
(In reply to comment #21) > How do I actually use this fix (apart from waiting for the next release)? Is > there an (milestone / nightly) update site that I can use on my 4.2SR1 (JEE) > version perhaps? I think the fix is already in: - http://granite.eclipse.org/eclipse/downloads/drops4/M20121107-1200/ corresponding update site: - http://download.eclipse.org/eclipse/updates/4.2-M-builds Normally I would have pointed to http://download.eclipse.org/eclipse/downloads/drops4/M20121114-1200/ but there seems to be a problem with a redirect right now. But beware, upgrading your JEE package will likely not work, the above update site is for Eclipse SDK only at this point, sorry.
(In reply to comment #21) > How do I actually use this fix (apart from waiting for the next release)? Is > there an (milestone / nightly) update site that I can use on my 4.2SR1 (JEE) > version perhaps? For EPP packages, like the JEE eclipse, a regular update won't work. We hope to provide an update site with a feature patch you can install. PW
(In reply to comment #23) > (In reply to comment #21) > > How do I actually use this fix (apart from waiting for the next release)? Is > > there an (milestone / nightly) update site that I can use on my 4.2SR1 (JEE) > > version perhaps? > > For EPP packages, like the JEE eclipse, a regular update won't work. We > hope to provide an update site with a feature patch you can install. > > PW Is there an ETA when this will happen? I'm using Juno JEE and would really like to get this patched ASAP.
Created attachment 223710 [details] Patch feature declaration (In reply to comment #24) > (In reply to comment #23) > > (In reply to comment #21) > > > How do I actually use this fix (apart from waiting for the next release)? Is > > > there an (milestone / nightly) update site that I can use on my 4.2SR1 (JEE) > > > version perhaps? > > > > For EPP packages, like the JEE eclipse, a regular update won't work. We > > hope to provide an update site with a feature patch you can install. > > > > PW > > Is there an ETA when this will happen? I'm using Juno JEE and would really > like to get this patched ASAP. FWIW, I recently created a patch feature for use within our company. All I needed was cloning the platform.ui git repo, checking out the R4_2_maintenance branch, importing a subset of its projects into the workspace and (interactively) exporting this subset using the attached feature.xml. Co-workers using this patch feature have confirmed that it solved the performance issue and created no (known) new bugs. Feel free to use for your purpose (you may want to change the provider name :) ) I assume the main difference to an official patch feature would be that the latter requires more testing, but I also assume that HEAD of R4_2_maintenance is pretty stable as is.
@Stephan, can you make this patch available public and maybe blog about it, so that others can use it? Open source projects don't necessary have a "offical" patch.
(In reply to comment #26) > @Stephan, can you make this patch available public and maybe blog about it, > so that others can use it? Open source projects don't necessary have a > "offical" patch. We will be making an official patch available for this, probably after this week's maintenance build. PW
For the impatient I've uploaded my patch feature to http://www.objectteams.org/EclipsePatch422beta This was built with content as of Nov 9. I deliberately used a non-Eclipse.org server to emphasize that this is not official. Use at your own risk :) Ah, and sorry, the repo has no categories. And it will be removed as soon as the official patch is available.
Installed the patch and it seemed to fix the issue. Thanks! Saved the Eclipse JEE snapshot before patch and waiting also for the official fix.
(In reply to comment #29) > Installed the patch and it seemed to fix the issue. Thanks! > > Saved the Eclipse JEE snapshot before patch and waiting also for the > official fix. See Bug 394588 for providing these optimizations and fixes as a patch. PW
I installed earlier the unofficial patch from http://www.objectteams.org/EclipsePatch422beta and it seemed to work fine. But now when I have been running Eclipse for about two or tree workdays, and now switching between Java and XML files is getting slow again and tool bar icons keep flickering. I already earlier increased memory parameters (min/max heap & perm size) considerably so it helped also considerably, but now after using Eclipse for few days the task manager shows about 1.2 GB memory consumption (when at start-up it's only about 500 MBs). With Indigo Eclipse I could work a whole work week (5 days) without problems and without Eclipse slowing down. So maybe the overall slowness of Eclipse and the slowness of switching slowness between editors have some common deminator (that was not solved by this fix even made some improvement especially right after Eclipse start). Btw, I am using the Classic view of Eclipse and not the new UI look and feel.
I've made exact the same experience as Mika Pussinen has described in comment 31.
(In reply to comment #31) > So maybe the overall slowness of Eclipse and the slowness of switching > slowness between editors have some common deminator (that was not solved by > this fix even made some improvement especially right after Eclipse start). There are still more optimizations that need to be made that aren't covered by the patch from bug 394588 - http://download.eclipse.org/eclipse/updates/junoSR1Patch-tmp Please use this location for your testing. PW
*** Bug 391088 has been marked as a duplicate of this bug. ***
I installed the recommended patch from comment 33. The two XML-Icons are stable now. But there is still sometimes a flickering of an information overlay icon in the sash between the parts as described in comment 2. Also the waiting cursor icon is flickering sometimes. My OS is Windows7 and eclipse 4.2 64bit.
I also installed the recommended patch referred in comment 33. It seems to work OK right after installation and Eclipse restart. I have no long term experiences yet, so I will get back if I notice still problems after keeping Eclipse running for a longer period (e.g. a couple of work days or so). My OS is also Windows7 and eclipse 4.2 64bit, and I'm using the Classic view of Eclipse (and not the new UI look and feel).
(In reply to comment #28) > For the impatient I've uploaded my patch feature to > > http://www.objectteams.org/EclipsePatch422beta > > This was built with content as of Nov 9. > > I deliberately used a non-Eclipse.org server to emphasize that this is not > official. Use at your own risk :) > > Ah, and sorry, the repo has no categories. And it will be removed as soon as > the official patch is available. I've removed the preliminary patch from the Object Teams server. Please use the update site mentioned in comment 33.
*** Bug 395683 has been marked as a duplicate of this bug. ***
*** Bug 395921 has been marked as a duplicate of this bug. ***
The repository to commet 33 is not available, does someone know when the fix will be release officially? i make a search and don't find anything, I thing I have searched in wrong part of site, obviously... Thanks in advance to anyone.
(In reply to comment #40) > The repository to commet 33 is not available, does someone know when the fix > will be release officially? i make a search and don't find anything, I > thing I have searched in wrong part of site, obviously... Thanks in advance > to anyone. Just tried and it is available. You have to go to Help > Install New Software...
Glad to see this is a known bug but.... Going to http://download.eclipse.org/eclipse/updates/junoSR1Patch-tmp Not found, it says to go in Archive. Going in http://archive.eclipse.org/eclipse/updates/junoSR1Patch-tmp/ Not found. This bug is driving me nuts, on my computer, the xml icons flickers between 10 and 20 seconds. Where can i find the patch now? Thanks.
(In reply to comment #42) > Glad to see this is a known bug but.... > > Going to http://download.eclipse.org/eclipse/updates/junoSR1Patch-tmp > Not found, it says to go in Archive. What says not found? You cannot go to an Update Site in your browser, you'll get a 404 if you do that. That URL goes into your Help>Install New Software dialog. The patch is also now available at http://download.eclipse.org/eclipse/updates/4.2 (also cannot be used in a browser). That Update Site is included with most of the EPP packages. PW
Yep thanks i just found it in the normal update site. The comment 33 adress, the one with junoSR1Patch-tmp. Was not able to "fetch childs" But i guess i will have to wait for a release 4.2.2, or trying to redo all my environnement from scratch because of conflicting dependencies: Cannot complete the install because of a conflicting dependency. Software being installed: Eclipse UI Juno SR1 Optimizations 4.2.1.v20121122-0007 (org.eclipse.ui.juno.feature.feature.group 4.2.1.v20121122-0007) Software currently installed: Eclipse IDE for Java and Report Developers 1.5.1.20120917-1257 (epp.package.reporting 1.5.1.20120917-1257) Software currently installed: Oracle WebLogic Server Tools 2.1.1.201210010857 (oracle.eclipse.tools.juno.weblogic.feature.group 2.1.1.201210010857) Only one of the following can be installed at once: Eclipse Workbench 3.104.0.v20121114-140926 (org.eclipse.ui.workbench 3.104.0.v20121114-140926) Eclipse Workbench 3.103.0.v20120530-1824 (org.eclipse.ui.workbench 3.103.0.v20120530-1824) Eclipse Workbench 3.103.1.v20120906-120042 (org.eclipse.ui.workbench 3.103.1.v20120906-120042) Cannot satisfy dependency: From: Eclipse IDE for Java and Report Developers 1.5.1.20120917-1257 (epp.package.reporting 1.5.1.20120917-1257) To: org.eclipse.epp.package.reporting.feature.feature.group [1.5.1.20120917-1257] Cannot satisfy dependency: From: Oracle Common Tools 5.1.1.201210010857 (oracle.eclipse.tools.common 5.1.1.201210010857) To: bundle org.eclipse.ui.workbench [3.8.0,3.104.0) Cannot satisfy dependency: From: Oracle Common Tools 2.1.1.201210010857 (oracle.eclipse.tools.juno.common.feature.group 2.1.1.201210010857) To: oracle.eclipse.tools.common [5.1.1.201210010857] Cannot satisfy dependency: From: Oracle WebLogic Server Tools 2.1.1.201210010857 (oracle.eclipse.tools.juno.weblogic.feature.group 2.1.1.201210010857) To: oracle.eclipse.tools.juno.common.feature.group 0.0.0 Cannot satisfy dependency: From: EPP Reporting Feature 1.5.1.20120917-1257 (org.eclipse.epp.package.reporting.feature.feature.group 1.5.1.20120917-1257) To: org.eclipse.platform.feature.group [4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO] Cannot satisfy dependency: From: Eclipse Platform 4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO (org.eclipse.platform.feature.group 4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO) To: org.eclipse.rcp.feature.group [4.2.1.v20120814-120134-7IAPA8BrHQicS-rjP0GbqK780kMy] Cannot satisfy dependency: From: Eclipse UI Juno SR1 Optimizations 4.2.1.v20121122-0007 (org.eclipse.ui.juno.feature.feature.group 4.2.1.v20121122-0007) To: org.eclipse.rcp.patch.feature.feature.group [4.2.1.v20121119-1839] Cannot satisfy dependency: From Patch: org.eclipse.rcp.patch.feature.feature.group 4.2.1.v20121119-1839 Eclipse RCP 4.2.1.v20120814-120134-7IAPA8BrHQicS-rjP0GbqK780kMy (org.eclipse.rcp.feature.group 4.2.1.v20120814-120134-7IAPA8BrHQicS-rjP0GbqK780kMy) To: org.eclipse.ui.workbench [3.104.0.v20121114-140926]
Your Oracle Common Tools 5.1.1.201210010857 won't install on Juno SR2 either, unless they provide an update. PW
I dont know. From Juno JEE + Birt 4.2 SR1. It did. I will try it again.
(In reply to comment #46) > I dont know. > > From Juno JEE + Birt 4.2 SR1. It did. Right, but I'm saying it won't install on the upcoming Juno SR2 (the optimization patch that's currently available is a snapshot of the SR2 maintenance builds). PW
Many performance fixes have now been made in the Juno SR2 and Kepler development streams. Anyone still encountering problems is encouraged to move up to a recent milestone or stable build, or apply the official performance patch on top of a Juno SR1 release package. Full details on the patch and background on the performance work can be found here: http://wiki.eclipse.org/Platform_UI/Juno_Performance_Investigation If you continue to experience performance problems using Kepler M4 or later, Juno maintenance build M20121128-1200 or later, or using the Juno SR1 performance patch, please report a new bug with all the details. Thanks again for everyone's use cases, error logs, and analysis on this bug.
*** Bug 396773 has been marked as a duplicate of this bug. ***
*** Bug 397146 has been marked as a duplicate of this bug. ***
Verified in 4.2.2 (M20130116_1800)
*** Bug 398683 has been marked as a duplicate of this bug. ***