# HG changeset patch # User Peter Hofer # Date 1309771688 -7200 # Node ID 7b805b65679f75b02b0daa2c5063c57cb7a6ddee # Parent 2def3cad2e00eb6e5e62114ece19b22e5efeb875 IdealGraphVisualizer: use a LinkedHashSet instead of an ArrayList to store the edges of an InputGraph in order to slightly increase performance, particularly when parsing an input file diff -r 2def3cad2e00 -r 7b805b65679f src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputGraph.java --- a/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputGraph.java Mon Jul 04 10:56:19 2011 +0200 +++ b/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputGraph.java Mon Jul 04 11:28:08 2011 +0200 @@ -28,8 +28,8 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Hashtable; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -40,11 +40,11 @@ */ public class InputGraph extends Properties.Entity { - private LinkedHashMap nodes; - private ArrayList edges; + private Map nodes; + private Set edges; private Group parent; - private LinkedHashMap blocks; - private LinkedHashMap nodeToBlock; + private Map blocks; + private Map nodeToBlock; private Pair sourceGraphs; private int parentIndex; @@ -54,7 +54,7 @@ this.sourceGraphs = sourceGraphs; setName(name); nodes = new LinkedHashMap(); - edges = new ArrayList(); + edges = new LinkedHashSet(); blocks = new LinkedHashMap(); nodeToBlock = new LinkedHashMap(); } @@ -177,9 +177,6 @@ } noBlock.addNode(n.getId()); } - } - - for (InputNode n : this.getNodes()) { assert this.getBlock(n) != null; } } @@ -249,22 +246,19 @@ } public Collection getEdges() { - return Collections.unmodifiableList(edges); + return Collections.unmodifiableSet(edges); } public void removeEdge(InputEdge c) { - assert edges.contains(c); - edges.remove(c); - assert !edges.contains(c); + boolean removed = edges.remove(c); + assert removed; } public void addEdge(InputEdge c) { - // Be tolerant with duplicated edges. - if(!edges.contains(c)) { + if (!edges.contains(c)) { edges.add(c); } - assert edges.contains(c); } public Group getGroup() {