Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 205357 - [performance] focus on workweek mode is slow
Summary: [performance] focus on workweek mode is slow
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 2.2   Edit
Assignee: Steffen Pingel CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-10-03 16:57 EDT by Steffen Pingel CLA
Modified: 2007-11-27 12:58 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steffen Pingel CLA 2007-10-03 16:57:17 EDT
Eclipse locks for up to 30 seconds when I enable Focus on Workweek mode with a task list that has 20 queries and a few thousand tasks. Deleting all tasks from the Archive category did not help much (bug 197395). It seems that most time is spent in TaskList.getQueriesForHandle():

"main" prio=1 tid=0x08097270 nid=0x105c runnable [0xbfbcb000..0xbfbccf48]
        at java.lang.String.equals(String.java:858)
        at org.eclipse.mylyn.tasks.core.AbstractTaskContainer.containsHelper(AbstractTaskContainer.java:97)
        at org.eclipse.mylyn.tasks.core.AbstractTaskContainer.contains(AbstractTaskContainer.java:88)
        at org.eclipse.mylyn.tasks.core.TaskList.getQueriesForHandle(TaskList.java:554)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListContentProvider.getFilteredChildrenFor(TaskListContentProvider.java:240)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListContentProvider.getChildren(TaskListContentProvider.java:83)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1317)
        at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:366)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChildren(AbstractTreeViewer.java:615)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:581)
        at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2497)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1826)
        at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:692)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1801)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1757)
        at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1460)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1368)
        at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:378)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1330)
        at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1458)
        at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:514)
        at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:823)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView.refresh(TaskListView.java:1520)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView.refreshTask(TaskListView.java:1665)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView.access$4(TaskListView.java:1644)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView$4$1.run(TaskListView.java:443)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
        - locked <0x30d5f660> (a org.eclipse.swt.widgets.RunnableLock)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
        at org.eclipse.jface.window.Window.open(Window.java:796)
        at org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction.run(NewTaskAction.java:78)
        at org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction.run(NewTaskAction.java:86)
        at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:256)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545)
        at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1101)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3319)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
        at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
        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.equinox.launcher.Main.invokeFramework(Main.java:504)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
Comment 1 Mik Kersten CLA 2007-10-05 23:26:52 EDT
My Task List is nearing 10K and I'm not seeing anywhere near this kind of performance problem, but we will have to investigate.
Comment 2 Mik Kersten CLA 2007-11-27 12:58:50 EST
Steffen: I think that we've now addressed the main performance problems, and remaining ones have their own bugs.