>From Ian Clarke <ian at freenetproject.org>
>java -Xrunhprof:heap=sites,depth=4,format=a freenet.node.Main
As expected, the memory used when a 498 node blows up is mostly storing the
announcement events for the hopefully fixed announcement bug, but I also
noticed that in StateChain.java:
L19:
public static boolean KEEP_HISTORY = false;
protected State state;
protected Vector history = new Vector();
[...]
L51:
public synchronized boolean received(Node node, NodeMessageObject mo) {
state = received(state, node, mo);
history.addElement(new StateRecord(mo.toString(),
state == null ? null :
state.getClass(),
System.currentTimeMillis()));
return state != null;
}
With KEEP_HISTORY set to false (it isn't changed anywhere in the code as far
as i can see) nothing is ever done with the history vector, but stores a
pretty large amount of data anyway, making StateChain objects much larger than
they need to be.
Can someone confirm that it would be okay to:
1. put an "if (KEEP_HISTORY)" around the history.addElement call; and
2. make KEEP_HISTORY final so that it gets optimized away by the compiler?
--
Benjamin Coates
_______________________________________________
devl mailing list
devl at freenetproject.org
http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/devl