nextgens at freenetproject.org wrote:
> Author: nextgens
> Date: 2006-08-27 13:45:23 +0000 (Sun, 27 Aug 2006)
> New Revision: 10282
>
> Modified:
> trunk/freenet/src/freenet/node/Node.java
> Log:
> optimize maybeLogPeerNodeStatusSummary() : it seems to be much faster than
> doing nth. hashmap lookups :/
So apparently the hashmaps are poorly implemented since getting the size
should simply be checking a size tracking variable. Seems the hashmaps
are pointless if counting each time everywhere is faster.
> Modified: trunk/freenet/src/freenet/node/Node.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/Node.java 2006-08-27 13:26:30 UTC (rev
> 10281)
> +++ trunk/freenet/src/freenet/node/Node.java 2006-08-27 13:45:23 UTC (rev
> 10282)
> @@ -2544,16 +2544,57 @@
> if(now > nextPeerNodeStatusLogTime) {
> if((now - nextPeerNodeStatusLogTime) > (10*1000) &&
> nextPeerNodeStatusLogTime > 0)
> Logger.error(this,"maybeLogPeerNodeStatusSummary() not called
> for more than 10 seconds ("+(now - nextPeerNodeStatusLogTime)+").
> PacketSender getting bogged down or something?");
> - int numberOfConnected =
> getPeerNodeStatusSize(PEER_NODE_STATUS_CONNECTED);
> - int numberOfRoutingBackedOff =
> getPeerNodeStatusSize(PEER_NODE_STATUS_ROUTING_BACKED_OFF);
> - int numberOfTooNew =
> getPeerNodeStatusSize(PEER_NODE_STATUS_TOO_NEW);
> - int numberOfTooOld =
> getPeerNodeStatusSize(PEER_NODE_STATUS_TOO_OLD);
> - int numberOfDisconnected =
> getPeerNodeStatusSize(PEER_NODE_STATUS_DISCONNECTED);
> - int numberOfNeverConnected =
> getPeerNodeStatusSize(PEER_NODE_STATUS_NEVER_CONNECTED);
> - int numberOfDisabled =
> getPeerNodeStatusSize(PEER_NODE_STATUS_DISABLED);
> - int numberOfListenOnly =
> getPeerNodeStatusSize(PEER_NODE_STATUS_LISTEN_ONLY);
> - int numberOfListening =
> getPeerNodeStatusSize(PEER_NODE_STATUS_LISTENING);
> - int numberOfBursting =
> getPeerNodeStatusSize(PEER_NODE_STATUS_BURSTING);
> +
> + int numberOfConnected = 0;
> + int numberOfRoutingBackedOff = 0;
> + int numberOfTooNew = 0;
> + int numberOfTooOld = 0;
> + int numberOfDisconnected = 0;
> + int numberOfNeverConnected = 0;
> + int numberOfDisabled = 0;
> + int numberOfListenOnly = 0;
> + int numberOfListening = 0;
> + int numberOfBursting = 0;
> +
> + PeerNodeStatus[] pns = getPeerNodeStatuses();
> +
> + for(int i=0; i<pns.length; i++){
> + switch (pns[i].getStatusValue()) {
> + case PEER_NODE_STATUS_CONNECTED:
> + numberOfConnected++;
> + break;
> + case PEER_NODE_STATUS_ROUTING_BACKED_OFF:
> + numberOfRoutingBackedOff++;
> + break;
> + case PEER_NODE_STATUS_TOO_NEW:
> + numberOfTooNew++;
> + break;
> + case PEER_NODE_STATUS_TOO_OLD:
> + numberOfTooOld++;
> + break;
> + case PEER_NODE_STATUS_DISCONNECTED:
> + numberOfDisconnected++;
> + break;
> + case PEER_NODE_STATUS_NEVER_CONNECTED:
> + numberOfNeverConnected++;
> + break;
> + case PEER_NODE_STATUS_DISABLED:
> + numberOfDisabled++;
> + break;
> + case PEER_NODE_STATUS_LISTEN_ONLY:
> + numberOfListenOnly++;
> + break;
> + case PEER_NODE_STATUS_LISTENING:
> + numberOfListening++;
> + break;
> + case PEER_NODE_STATUS_BURSTING:
> + numberOfBursting++;
> + break;
> + default:
> + Logger.error(this, "Unkown peer status value :
> "+pns[i].getStatusValue());
> + break;
> + }
> + }
> Logger.normal(this, "Connected: "+numberOfConnected+" Routing
> Backed Off: "+numberOfRoutingBackedOff+" Too New: "+numberOfTooNew+" Too
> Old: "+numberOfTooOld+" Disconnected: "+numberOfDisconnected+" Never
> Connected: "+numberOfNeverConnected+" Disabled: "+numberOfDisabled+"
> Bursting: "+numberOfBursting+" Listening: "+numberOfListening+" Listen
> Only: "+numberOfListenOnly);
> nextPeerNodeStatusLogTime = now + peerNodeStatusLogInterval;
> }
>
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs