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
Item next = getNextItem(current, true);
			showItem(next == null ? current : next);
			return next;
		}
		return null;
	}
	/* (non-Javadoc)
	 * Method declared on Viewer.
	 */
	public Item scrollUp(int x, int y) {
		Item current = getItem(x, y);
		if (current != null) {
			Item previous = getPreviousItem(current);
			showItem(previous == null ? current : previous);
			return previous;
		}
		return null;
	}
	/**
	 * Sets the auto-expand level.
	 * The value 0 means that there is no auto-expand; 
	 * 1 means that top-level elements are expanded, but not their children;
	 * 2 means that top-level elements are expanded, and their children, 
	 * but not grandchildren; and so on.
	 * <p>
	 * The value <code>ALL_LEVELS</code> means that all subtrees should be
	 * expanded.
	 * </p>
	 *
	 * @param level non-negative level, or <code>ALL_LEVELS</code> to expand