Bug 61995 Removing search matches is slow
I20040512 - 0800 1) Search for declarations of "toString()" in a self-hosting workspace with core projects (or some equivalent search). -> Finding 861 matches takes about 20 seconds. Great 2) Click "Remove all Matches" -> Instantaneous 3) Repeat the search 4) Select every search result but one, and push the delete key -> Deleting 860 matches takes 52 seconds. I did a bit of profiling, but all the time is inside a WindowProc - it looks like table removal is very slow.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/LevelTreeContentProvider.java
return children.toArray();
	}
	public boolean hasChildren(Object element) {
		return getChildren(element).length > 0;
	}
	public synchronized void elementsChanged(Object[] updatedElements) {
		if (fResult == null)
			return;
		for (int i= 0; i < updatedElements.length; i++) {
			if (getPage().getDisplayedMatchCount(updatedElements[i]) > 0)
				insert(updatedElements[i], true);
			else
				remove(updatedElements[i], true);
		}
	}
	public void clear() {
		initialize(fResult);
		getPage().getViewer().refresh();
	}
	public void setLevel(int level) {
		fCurrentLevel= level;
		initialize(fResult);
		getPage().getViewer().refresh();
	}
	public void filtersChanged(MatchFilter[] filters) {
		super.filtersChanged(filters);
		initialize(fResult);
		getPage().getViewer().refresh();
	}
}