On Tuesday 27 January 2009 15:13:38 nextgens at freenetproject.org wrote:
> Author: nextgens
> Date: 2009-01-27 15:13:37 +0000 (Tue, 27 Jan 2009)
> New Revision: 25317
> 
> Modified:
>    trunk/freenet/src/freenet/node/NodeStats.java
> Log:
> cache the results for 60 secs

IMHO this is over-optimisation. The only case in which we use this is 
rendering the statistics page in advanced mode. If the user wants detailed 
diagnostics, we should give them up to date and accurate figures.
> 
> Modified: trunk/freenet/src/freenet/node/NodeStats.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/NodeStats.java     2009-01-27 15:07:03 UTC 
(rev 25316)
> +++ trunk/freenet/src/freenet/node/NodeStats.java     2009-01-27 15:13:37 UTC 
(rev 25317)
> @@ -172,6 +172,8 @@
>       
>       // ThreadCounting stuffs
>       public final ThreadGroup rootThreadGroup;
> +     private int[] activeThreadsByPriorities = new 
int[NativeThread.JAVA_PRIORITY_RANGE];
> +     private int[] waitingThreadsByPriorities = new 
int[NativeThread.JAVA_PRIORITY_RANGE];
>       private int threadLimit;
>       
>       final NodePinger nodePinger;
> @@ -202,6 +204,8 @@
>               ThreadGroup tg = Thread.currentThread().getThreadGroup();
>               while(tg.getParent() != null) tg = tg.getParent();
>               this.rootThreadGroup = tg;
> +             this.activeThreadsByPriorities = new 
int[NativeThread.JAVA_PRIORITY_RANGE];
> +             this.waitingThreadsByPriorities = new 
int[NativeThread.JAVA_PRIORITY_RANGE];
>               throttledPacketSendAverage =
>                       new TimeDecayingRunningAverage(1, 10*60*1000 /* should 
> be significantly 
longer than a typical transfer */, 0, Long.MAX_VALUE, node);
>               nodePinger = new NodePinger(node);
> @@ -423,6 +427,10 @@
>                                       long end = System.currentTimeMillis();
>                                       if(logMINOR)
>                                               Logger.minor(this, "Throttle 
> check 
took "+TimeUtil.formatTime(end-now,2,true));
> +
> +                                     // Doesn't belong here... but anyway, 
> should do the job.
> +                                     activeThreadsByPriorities = 
> node.executor.runningThreads();
> +                                     waitingThreadsByPriorities = 
> node.executor.waitingThreads();
>                               }
>                       }
>       };
> @@ -1016,11 +1024,11 @@
>       }
>       
>       public int[] getActiveThreadsByPriority() {
> -             return node.executor.runningThreads();
> +             return activeThreadsByPriorities;
>       }
>       
>       public int[] getWaitingThreadsByPriority() {
> -             return node.executor.waitingThreads();
> +             return waitingThreadsByPriorities;
>       }
>  
>       public int getThreadLimit() {
> 
> _______________________________________________
> 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/20090221/1630d11d/attachment.pgp>

Reply via email to