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