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
}
	private Object internalGetParent(Object child) {
		return fContentProvider.getParent(child);
	}
	public Object[] getElements(Object inputElement) {
		return getChildren(inputElement);
	}
	protected synchronized void initialize(JavaSearchResult result) {
		super.initialize(result);
		fChildrenMap= new HashMap();
		if (result != null) {
			Object[] elements= result.getElements();
			for (int i= 0; i < elements.length; i++) {
				if (getPage().getDisplayedMatchCount(elements[i]) > 0) {
					insert(elements[i], false);
				}
			}
		}
	}
	protected void insert(Object child, boolean refreshViewer) {
		Object parent= getParent(child);
		AbstractTreeViewer viewer= (AbstractTreeViewer) getPage().getViewer();
		while (parent != null) {
			if (insertChild(parent, child)) {
				if (refreshViewer)
					viewer.add(parent, child);
			} else {
				if (refreshViewer)
					viewer.refresh(parent);
				return;