From the javadoc for RAMDirectory:

"Warning: This class is not intended to work with huge indexes. Everything beyond several hundred megabytes will waste resources (GC cycles), because it uses an internal buffer size of 1024 bytes, producing millions of byte[1024] arrays. This class is optimized for small memory-resident indexes. It also has bad concurrency on multithreaded environments.

It is recommended to materialize large indexes on disk and use MMapDirectory, which is a high-performance directory implementation working directly on the file system cache of the operating system, so copying data to Java heap space is not useful."

-- Jack Krupansky

-----Original Message----- From: Cheng
Sent: Monday, June 04, 2012 10:08 AM
To: java-user@lucene.apache.org
Subject: RAMDirectory unexpectedly slows

Hi,

My apps need to read from and write to some big indexes frequently. So I
use RAMDirectory instead of FSDirectory, and give JVM about 2GB memory
size.

I notice that the speed of reading and writing unexpectedly slows as the
size of the indexes increases. Since the usage of RAM is less than 20%, I
think by default the RAMDirectory doesn't take advantage of the memory I
assigned to JVM.

What are the steps to improve the reading and writing speed of
RAMDirectory?

Thanks!
Jeff

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to