lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From robert engels <reng...@ix.netcom.com>
Subject Re: Memory Leak IndexSearcher
Date Mon, 03 Jul 2006 17:55:50 GMT
Problem is, there is no way to force a gc. Runtime.gc() only requests  
that a gc be performed - if the CPU is stressed you will not get a GC.

On Jul 3, 2006, at 12:50 PM, Chuck Williams wrote:

> I'd suggest forcing gc after each n iteration(s) of your loop to
> eliminate the garbage factor.  Also, you can run a profiler to see  
> which
> objects are leaking (e.g., the netbeans profiler is excellent).  Those
> steps should identify any issues quickly.
>
> Chuck
>
> robert engels wrote on 07/03/2006 07:40 AM:
>> Did you try what was suggested? (-Xmx16m) and did you get an OOM? If
>> not, there is no memory leak.
>>
>> On Jul 3, 2006, at 12:33 PM, Bruno Vieira wrote:
>>
>>> Thanks for the answer, but I have isolated the cycle inside a  
>>> loop on a
>>> static void main (String args[]) Class to test this issue.In this
>>> case there
>>> were no classes referencing the IndexSercher and the problem still
>>> happened.
>>>
>>>
>>> 2006/7/3, robert engels <rengels@ix.netcom.com>:
>>>>
>>>> You may not have a memory leak at all. It could just be garbage
>>>> waiting to be collected. I am fairly certain there are no "memory
>>>> leaks" in the current Lucene code base (outside of the ThreadLocal
>>>> issue).
>>>>
>>>> A simple way to verify this would be to add -Xmx16m on the command
>>>> line. If there were a memory leak then it will eventually fail with
>>>> an OOM.
>>>>
>>>> If there is a memory leak, then it is probably because your code is
>>>> holding on to IndexReader references in some static var or map.
>>>>
>>>>
>>>> On Jul 3, 2006, at 9:43 AM, Bruno Vieira wrote:
>>>>
>>>>> Hi everyone,
>>>>>
>>>>> I am working on a project with around 35000 documents (8 text
>>>>> fields with
>>>>> 256 chars at most for each field) on lucene. But unfortunately  
>>>>> this
>>>>> index is
>>>>> updated at every moment and I need that these new items be in the
>>>>> results of
>>>>> my search as fast as possible.
>>>>>
>>>>> I have an IndexSearcher, then I do a search getting the last 10
>>>>> results with
>>>>> ordering by a name field and the memory allocated is 13mb, I close
>>>> the
>>>>> IndexSearcher because the lucene database was updated by and  
>>>>> external
>>>>> application and I create a new IndexSearcher, do the same search
>>>> again
>>>>> wanting to get the last 10 results with ordering by a name field
>>>>> and the
>>>>> memory allocated is 15mb. At every time I do this cycle the memory
>>>>> increase
>>>>> in 2mb, so in a moment I have a memory leak.
>>>>>
>>>>> If the database is not updated and i do not create a new
>>>>> IndexSearcher i can
>>>>> do searches forever without memory leak.
>>>>>
>>>>> Why when I close an IndexSearcher (indexSearcher.close();
>>>>> indexSearcher =
>>>>> new IndexSearcher("/database/") ;)after some searches with  
>>>>> ordering
>>>>> and open
>>>>> a new one the memory is not free ?
>>>>>
>>>>> Thanks to any suggestions.
>>>>
>>>>
>>>> ------------------------------------------------------------------- 
>>>> --
>>>> To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
>>>> For additional commands, e-mail: java-dev-help@lucene.apache.org
>>>>
>>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-dev-help@lucene.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-dev-help@lucene.apache.org
>


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


Mime
View raw message