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
}
			child= parent;
			parent= getParent(child);
		}
		if (insertChild(fResult, child)) {
			if (refreshViewer)
				viewer.add(fResult, child);
		}
	}
	/**
	 * returns true if the child already was a child of parent.
	 * 
	 * @param parent
	 * @param child
	 * @return
	 */
	private boolean insertChild(Object parent, Object child) {
		Set children= (Set) fChildrenMap.get(parent);
		if (children == null) {
			children= new HashSet();
			fChildrenMap.put(parent, children);
		}
		return children.add(child);
	}
	protected void remove(Object element, boolean refreshViewer) {
		
	
		AbstractTreeViewer viewer= (AbstractTreeViewer) getPage().getViewer();
		if (hasChildren(element)) {
			if (refreshViewer)