[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