Bug 38782 TreeViewer add calls a refresh
Our implementation of TreeViewer.add is naive and can all a refresh of the entire tree. It should be more like TableViewer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
/* (non-Javadoc)
	 * Method declared on Viewer.
	 */
	protected void hookControl(Control control) {
		super.hookControl(control);
		addTreeListener(control, new TreeListener() {
			public void treeExpanded(TreeEvent event) {
				handleTreeExpand(event);
			}
			public void treeCollapsed(TreeEvent event) {
				handleTreeCollapse(event);
			}
		});
	}
	/* (non-Javadoc)
	 * Method declared on StructuredViewer.
	 * Builds the initial tree and handles the automatic expand feature.
	 */
	protected void inputChanged(Object input, Object oldInput) {
		preservingSelection(new Runnable() {
			public void run() {
				Control tree = getControl();
				boolean useRedraw = true;
				
				if (useRedraw)
					tree.setRedraw(false);
				removeAll(tree);
				tree.setData(getRoot());
				createChildren(tree);
				internalExpandToLevel(tree, expandToLevel);