Bug 509393 - Eclipse very slow when Error Log has many entries
Summary: Eclipse very slow when Error Log has many entries
Status: CLOSED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.6   Edit
Hardware: PC Windows 7
: P4 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2016-12-17 18:48 EST by Stephan Herrmann CLA
Modified: 2020-04-09 09:13 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Herrmann CLA 2016-12-17 18:48:17 EST
When dog-fooding some of my plug-ins I typically want to see all their log messages in the Error Log view, so I select to show only entries from the current session but I disable the upper limit of visible entries.

When the number of log entries gets large this can make Eclipse incredibly slow on every action. What's worse, there's not a single visual clue about what's causing the slowdown.

Once I limit visible elements to 1000 items, things are smooth and easy again.

I know the native tree widgets may have their quirks, but the slow down I'm observing is severe and calls for some kind of action.

When it happens, thread main is busy like this:

        at org.eclipse.swt.widgets.Display.windowProc(Display.java:5106)
        at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2446)
        at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1552)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:4889)
        at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:6074)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102)
        at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:3405)
        at org.eclipse.swt.widgets.TreeItem.setText(TreeItem.java:1834)
        at org.eclipse.jface.viewers.TreeViewerRow.setText(TreeViewerRow.java:116)
        at org.eclipse.jface.viewers.ViewerCell.setText(ViewerCell.java:159)
        at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:66)
        at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:141)
        at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:949)
        at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:118)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
        at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
        at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1029)
        at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:474)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
        at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
        at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2170)
        at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2738)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1913)
        at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:669)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1888)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1845)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1831)
        at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1519)
        at org.eclipse.jface.viewers.StructuredViewer$$Lambda$81/869340215.run(Unknown Source)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1458)
        at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:354)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1419)
        at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1519)
        at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:523)
        at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1240)
        at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1478)
        at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1228)
        at org.eclipse.ui.internal.views.log.LogView$25.run(LogView.java:1105)
Comment 1 Patrik Suzzi CLA 2016-12-19 19:54:55 EST
Stephan, could you please add a test project or a sequence of steps to reproduce the issue?

Thanks for reporting!
Comment 2 Mikaël Barbero CLA 2016-12-21 07:03:58 EST
sounds like a duplicate of bug 349869
Comment 3 Mikaël Barbero CLA 2016-12-21 07:05:26 EST
oops, sorry, this one is about Error log, not Problem view...
Comment 4 Eclipse Genie CLA 2020-04-09 09:13:59 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.