Good work on that... seems to make a noticible performance improvement to my node... Definitely reduces the computational cost of connections.
--Brandon On Tue, 09/23/03 at 21:49:53 -0400, Edward J. Huff wrote: > Zlatin Balevsky <[EMAIL PROTECTED]> posted a stack dump. > I looked at it, and wondered, "how did he do that?" > > So I googled "java stack dump" and found out: > kill -QUIT `cat freenet.pid` > > Shortly thereafter, my node became compute bound. > > Sun recommends for compute bound tasks, you should take > several dumps. I did so, and eventually figured out that > the common feature was lots of processes in > KillSurplusConnections, and one process doing > BigInteger math. So I fixed DSAIdentity to precompute > the hash codes. Then I looked again at the stack > dump Zlatin posted, and it looks like the same thing, > except he didn't catch it inside BigInteger.shiftRight. > > > "QThread-94747" prio=1 tid=0x0x59435a38 nid=0x63d4 > waiting on condition [5af6f000..5af6fc50] > at java.math.BigInteger.shiftRight(BigInteger.java:2001) > at freenet.DSAIdentity.hashCode(DSAIdentity.java:130) > at java.util.Hashtable.get(Hashtable.java:329) > - locked <0x45b2d648> (a java.util.Hashtable) > at freenet.node.rt.NGRoutingTable.references > (NGRoutingTable.java:147) > at freenet.node.rt.FilterRoutingTable.references > (FilterRoutingTable.java:52) > at freenet.OpenConnectionManager.onlyRTNodeConn > (OpenConnectionManager.java:298) > at freenet.OpenConnectionManager.onlyRTNodeConn > (OpenConnectionManager.java:294) > at freenet.OpenConnectionManager.KillSurplusConnections > (OpenConnectionManager.java:476) > - locked <0x45cea3f0> (a freenet.support.LRUQueue) > > > Compare to Zlatin's stack dump: > > > "QThread-14857" prio=1 tid=0x592e4438 nid=0x4328 > runnable [bc1ff000..bc1ff8d8] > at java.util.Hashtable.get > (Hashtable.java:332) > - waiting to lock <0x46c88480> (a java.util.Hashtable) > at freenet.node.rt.NGRoutingTable.references > (NGRoutingTable.java:147) > at freenet.node.rt.FilterRoutingTable.references > (FilterRoutingTable.java:52) > at freenet.OpenConnectionManager.onlyRTNodeConn > (OpenConnectionManager.java:301) > at freenet.OpenConnectionManager.onlyRTNodeConn > (OpenConnectionManager.java:297) > at freenet.OpenConnectionManager.KillSurplusConnections > (OpenConnectionManager.java:498) > > > -- > Edward J. Huff <[EMAIL PROTECTED]> > _______________________________________________ > Devl mailing list > [EMAIL PROTECTED] > http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl _______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl