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

Reply via email to