You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by David Spencer <da...@tropo.com> on 2004/09/13 17:34:00 UTC

force gc idiom - Re: OutOfMemory example

Jiří Kuhn wrote:

> Thanks for the bug's id, it seems like my problem and I have a stand-alone code with main().
> 
> What about slow garbage collector? This looks for me as wrong suggestion.


I've seen this written up before (javaworld?) as a way to probably 
"force" GC instead of just a System.gc() call. I think the 2nd gc() call 
is supposed to clean up junk from the runFinalization() call...

System.gc();
Thread.sleep( 100);
System.runFinalization();
Thread.sleep( 100);
System.gc();

> 
> Let change the code once again:
> 
> ...
>     public static void main(String[] args) throws IOException, InterruptedException
>     {
>         Directory directory = create_index();
> 
>         for (int i = 1; i < 100; i++) {
>             System.err.println("loop " + i + ", index version: " + IndexReader.getCurrentVersion(directory));
>             search_index(directory);
>             add_to_index(directory, i);
>             System.gc();
>             Thread.sleep(1000);// whatever value you want
>         }
>     }
> ...
> 
> and in the 4th iteration java.lang.OutOfMemoryError appears again.
> 
> Jiri.
> 
> 
> -----Original Message-----
> From: John Moylan [mailto:johnm@rte.ie]
> Sent: Monday, September 13, 2004 4:53 PM
> To: Lucene Users List
> Subject: Re: OutOfMemory example
> 
> 
> http://issues.apache.org/bugzilla/show_bug.cgi?id=30628
> 
> you can close the index, but the Garbage Collector still needs to 
> reclaim the memory and it may be taking longer than your loop to do so.
> 
> John
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-user-help@jakarta.apache.org