Bug 84912 [KeyBindings] performance: Lots of garbage when editor gains/loses focus
build i0208 Not sure where to enter this report. Adding Tod and John to CC as they will be involve in performance work this release. I have the Platform/UI heap usage plug-in installed. I notice that when I switch focus from the editor to a view (e.g. Outline), the heap usage increases by a meg or 2. Putting focus back to the editor does the same. This happens with both the text editor and more prominatly with the Java editor. It doesn't matter if the view is docked or is a fast view.
bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/CachedBindingSet.java
private final static int HASH_FACTOR = 89;
	/**
	 * The seed for the hash code for all cached binding sets.
	 */
	private final static int HASH_INITIAL = CachedBindingSet.class.getName()
			.hashCode();
	/**
	 * <p>
	 * A representation of the tree of active contexts at the time this cached
	 * binding set was computed. It is a map of context id (<code>String</code>)
	 * to context id (<code>String</code>). Each key represents one of the
	 * active contexts or one of its ancestors, while each value represents its
	 * parent. This is a way of perserving information about what the hierarchy
	 * looked like.
	 * </p>
	 * <p>
	 * This value will be <code>null</code> if the contexts were disregarded
	 * in the computation. It may also be empty. All of the keys are guaranteed
	 * to be non- <code>null</code>, but the values can be <code>null</code>
	 * (i.e., no parent).
	 * </p>
	 */
	private final Map activeContextTree;
	/**
	 * The map representing the resolved state of the bindings. This is a map of
	 * a trigger (<code>Trigger</code>) to command id (<code>String</code>).
	 * This value may be <code>null</code> if it has not yet been initialized.
	 */
	private Map commandIdsByTrigger = null;
	/**