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