On Friday 17 April 2009 17:42:03 nextgens at freenetproject.org wrote:
> Author: nextgens
> Date: 2009-04-17 16:42:03 +0000 (Fri, 17 Apr 2009)
> New Revision: 26942
>
> Modified:
> branches/nextgens-stuffs/freenet/src/freenet/io/comm/MessageCore.java
> Log:
> More optimization: sort the MessageFilters by Peer to speedup matching
>
> Modified:
branches/nextgens-stuffs/freenet/src/freenet/io/comm/MessageCore.java
> ===================================================================
> --- branches/nextgens-stuffs/freenet/src/freenet/io/comm/MessageCore.java
2009-04-17 16:32:59 UTC (rev 26941)
> +++ branches/nextgens-stuffs/freenet/src/freenet/io/comm/MessageCore.java
2009-04-17 16:42:03 UTC (rev 26942)
...
Neither of the below makes sense, if you're thinking of reusing this code. You
add the filter to the list for *every* Peer, afaics.
> @@ -352,20 +373,22 @@
> if (ret == null) {
> if(logMINOR) Logger.minor(this, "Not in
> _unclaimed");
> // Insert filter into filter list in order of
> timeout
> - ListIterator<MessageFilter> i =
> _filters.listIterator();
> - while (true) {
> - if (!i.hasNext()) {
> - i.add(filter);
> - if(logMINOR) Logger.minor(this,
> "Added at end");
> - break;
> + for(LinkedList<MessageFilter> list :
> _filters.values()) {
> + ListIterator<MessageFilter> i =
> list.listIterator();
> + while (true) {
> + if (!i.hasNext()) {
> + i.add(filter);
> + if(logMINOR)
> Logger.minor(this, "Added at end");
> + break;
> + }
> + MessageFilter mf = i.next();
> + if (mf.getTimeout() >
> filter.getTimeout()) {
> + i.previous();
> + i.add(filter);
> + if(logMINOR)
> Logger.minor(this, "Added in middle - mf
timeout="+mf.getTimeout()+" - my timeout="+filter.getTimeout());
> + break;
> + }
> }
> - MessageFilter mf = i.next();
> - if (mf.getTimeout() >
> filter.getTimeout()) {
> - i.previous();
> - i.add(filter);
> - if(logMINOR) Logger.minor(this,
> "Added in middle - mf
timeout="+mf.getTimeout()+" - my timeout="+filter.getTimeout());
> - break;
> - }
> }
> }
> }
> @@ -424,20 +447,22 @@
> if (ret == null) {
> if(logMINOR) Logger.minor(this, "Not in
> _unclaimed");
> // Insert filter into filter list in order of
> timeout
> - ListIterator<MessageFilter> i =
> _filters.listIterator();
> - while (true) {
> - if (!i.hasNext()) {
> - i.add(filter);
> - if(logMINOR) Logger.minor(this,
> "Added at end");
> - break;
> + for(LinkedList<MessageFilter> list :
> _filters.values()) {
> + ListIterator<MessageFilter> i =
> list.listIterator();
> + while (true) {
> + if (!i.hasNext()) {
> + i.add(filter);
> + if(logMINOR)
> Logger.minor(this, "Added at end");
> + break;
> + }
> + MessageFilter mf = i.next();
> + if (mf.getTimeout() >
> filter.getTimeout()) {
> + i.previous();
> + i.add(filter);
> + if(logMINOR)
> Logger.minor(this, "Added in middle - mf
timeout="+mf.getTimeout()+" - my timeout="+filter.getTimeout());
> + break;
> + }
> }
> - MessageFilter mf = i.next();
> - if (mf.getTimeout() >
> filter.getTimeout()) {
> - i.previous();
> - i.add(filter);
> - if(logMINOR) Logger.minor(this,
> "Added in middle - mf
timeout="+mf.getTimeout()+" - my timeout="+filter.getTimeout());
> - break;
> - }
> }
> }
> }
>
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 835 bytes
Desc: This is a digitally signed message part.
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20090430/2d133a27/attachment.pgp>