[freenet-cvs] r11927 - in trunk/freenet/src/freenet: clients/http node

nextgens at freenetproject.org nextgens at freenetproject.org
Wed Feb 28 17:25:09 UTC 2007


Author: nextgens
Date: 2007-02-28 17:25:08 +0000 (Wed, 28 Feb 2007)
New Revision: 11927

Modified:
   trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
   trunk/freenet/src/freenet/node/LocationManager.java
   trunk/freenet/src/freenet/node/Node.java
Log:
Small performance optimization: use a LinkedHashMap insteed of a HashMap to keep track of known locations. It's slightly slower but will speed up the displaying of the StatisticalToadlet (where we iterate a LOT).

Recommended reading : http://www.javaranch.com/newsletter/Aug2002/newsletteraug2002.jsp ;)

Modified: trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java	2007-02-28 15:50:58 UTC (rev 11926)
+++ trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java	2007-02-28 17:25:08 UTC (rev 11927)
@@ -7,8 +7,8 @@
 import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.Comparator;
-import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.Locale;
 import java.util.Map;
 
@@ -599,7 +599,7 @@
 		nodeCircleInfoboxContent.addChild("span", new String[] { "style", "class" }, new String[] { generatePeerCircleStyleString(0.875, false, 1.0), "mark" }, "+");
 		nodeCircleInfoboxContent.addChild("span", new String[] { "style", "class" }, new String[] { generatePeerCircleStyleString(0.875, false, 1.0), "mark" }, "+");
 		nodeCircleInfoboxContent.addChild("span", new String[] { "style", "class" }, new String[] { "position: absolute; top: " + PEER_CIRCLE_RADIUS + "px; left: " + (PEER_CIRCLE_RADIUS + PEER_CIRCLE_ADDITIONAL_FREE_SPACE) + "px", "mark" }, "+");
-		HashMap knownLocsCopy = node.getKnownLocations(-1);
+		LinkedHashMap knownLocsCopy = node.getKnownLocations(-1);
 		Double location = new Double(0.0);
 		Long locationTime = new Long(0);
 		double strength = 1.0;

Modified: trunk/freenet/src/freenet/node/LocationManager.java
===================================================================
--- trunk/freenet/src/freenet/node/LocationManager.java	2007-02-28 15:50:58 UTC (rev 11926)
+++ trunk/freenet/src/freenet/node/LocationManager.java	2007-02-28 17:25:08 UTC (rev 11927)
@@ -5,8 +5,8 @@
 
 import java.security.MessageDigest;
 import java.util.Enumeration;
-import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.LinkedHashMap;
 import java.util.Vector;
 import java.util.Date;
 import java.util.Iterator;
@@ -1022,7 +1022,7 @@
         recentlyForwardedIDs.remove(new Long(item.outgoingID));
     }
     
-    private final HashMap knownLocs = new HashMap();
+    private final LinkedHashMap knownLocs = new LinkedHashMap();
     
     void registerLocationLink(double d, double t) {
     	if(logMINOR) Logger.minor(this, "Known Link: "+d+ ' ' +t);
@@ -1065,9 +1065,9 @@
 	}
     
     // Return a copy of the known locations HashMap for a given timestamp
-    public HashMap getKnownLocations(long timestamp) {
+    public LinkedHashMap getKnownLocations(long timestamp) {
     		if (timestamp > -1) {
-    			HashMap knownLocsCopy = new HashMap();
+    			LinkedHashMap knownLocsCopy = new LinkedHashMap();
     			//TODO optimize some more if it is to be called a lot.
     			Double location = new Double(0.0);
     			Long locationTime = new Long(0);
@@ -1085,6 +1085,6 @@
 				}
 				return knownLocsCopy;
 			}
-			return new HashMap( knownLocs );
+			return new LinkedHashMap( knownLocs );
 	}
 }

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java	2007-02-28 15:50:58 UTC (rev 11926)
+++ trunk/freenet/src/freenet/node/Node.java	2007-02-28 17:25:08 UTC (rev 11927)
@@ -28,6 +28,7 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.zip.DeflaterOutputStream;
 
 import org.tanukisoftware.wrapper.WrapperManager;
@@ -3228,7 +3229,7 @@
 	  return lm.getNetworkSizeEstimate( timestamp );
 	}
 
-	public HashMap getKnownLocations(long timestamp) {
+	public LinkedHashMap getKnownLocations(long timestamp) {
 	  return lm.getKnownLocations( timestamp );
 	}
 	




More information about the cvs mailing list