> From: Peter Hargreaves [mailto:[EMAIL PROTECTED]]
> 
> Hi Folks,
> 
> Its great to see such enthusiasm - thanks for listening. Just got a
> coupe of comments and a simple idea that might help towards the
solution
> - if you scroll down.
> 
> Gerhard Froehlich wrote:

<snip/>

>  > Maybe I did something wrong. But the idea was that:
>  >
>  > while(MemoryIsLow) {
>  >   free objects out of the store //physicall
>  >   run gc
>  > }
>  >
>  > I run the GC after each "free objects" to clean away
>  > does not needed objects!
>  >
>  > The problem is now, that when he doesn't has anything
>  > to free from the registered stores, he runs the GC
>  > all the time. And then we have this endless loop!
>  >
>  > Therefore I should check if the Stores are empty. If they
>  > are empty and there is nothing to free anymore we should
>  > leave that loop.
> 
> 
> Is this where you mean:
> 
>     while (this.memoryLow() && this.getStoreList().size() > 0) {
>         this.freeMemory();
>     }
> 
> I assumed that "this.getStoreList().size()" returned 0 when all the
> stores were empty. If this is not the case (as you suggest) then it
> looks like a permanent loop. I have seen it come out of this loop
> however. Perhaps another thread freed up memory letting the gc become
> successful at breaking out of the loop through "this.memoryLow()".
> 
> I saw it break out of the loop when I had the jvm -Xnoclassgc option
> set. With this option classes that haven't been used for a while get
> dropped from memory don't they? So, if stuck in a loop, it won't be
long
> before there are a lot of classes that haven't been used for a while!
> When I saw it come out, it was spectacular - a sudden big drop in
memory
> in use!
> 
> 
>  >  >> After that it waits as configured (threadinterval)
>  >  >> before the next execution.
>  >  >>
>  >  >> Maybe there is a more elegent solution.
> 
> 
> Hava you considered a sort of binary approach to emptying stores?
> 
> while (MemoryIsLow) {
>      free half of the items in the next store
>      run gc
> }

I guess half would be too radical :)
May be something like 1/10th (decimal approach) would do the job better?

Vadim

<snip/>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to