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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to