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/BindingManager.java
* @return A map of prefixes (<code>TriggerSequence</code>) to a map of
	 *         available completions (possibly <code>null</code>, which means
	 *         there is an exact match). The available completions is a map of
	 *         trigger (<code>TriggerSequence</code>) to command identifier (<code>String</code>).
	 *         This value will never be <code>null</code>, but may be empty.
	 */
	private final Map buildPrefixTable(final Map activeBindings) {
		final Map prefixTable = new HashMap();
		final Iterator bindingItr = activeBindings.entrySet().iterator();
		while (bindingItr.hasNext()) {
			final Map.Entry entry = (Map.Entry) bindingItr.next();
			final TriggerSequence triggerSequence = (TriggerSequence) entry
					.getKey();
			
			if (!prefixTable.containsKey(triggerSequence)) {
				prefixTable.put(triggerSequence, null);
			}
			final List prefixes = triggerSequence.getPrefixes();
			if (prefixes.isEmpty()) {
				continue;
			}
			
			final String commandId = (String) entry.getValue();
			final Iterator prefixItr = prefixes.iterator();
			while (prefixItr.hasNext()) {
				final TriggerSequence prefix = (TriggerSequence) prefixItr
						.next();
				final Object value = prefixTable.get(prefix);
				if ((prefixTable.containsKey(prefix)) && (value instanceof Map)) {
					((Map) value).put(triggerSequence, commandId);