我一直在使用RAMDirectory
将我的整个索引放入内存中以提高性能,并且它的工作非常好,直到我的索引增长并增长。现在我得到OutOfMemoryException
。虽然我的磁盘索引为1.24GB,但我怀疑RAMDirectory
对象的对象大小最终超过.NET 2GB对象大小限制,因此抛出异常。另一个原因可能是虚拟地址空间太简单,无法找到足够大的空洞来放置我的对象。如何使用RAMDirectory并避免出现OutOfMemoryException如果对象大小超过2GB
我想继续使用RAMDirectory
。我该怎么做,同时避免OutOfMemoryException
?
另请注意,当我编写我的索引时,我呼叫IndexWriter.Optimize
,因此整个索引都在一个大文件中。
我想你会看到使用RAMDirectory进行搜索的速度最小化。 我会尝试没有它,我敢打赌,你会看到,性能是相当equivelent一旦你温暖索引。 –
谢谢!需要什么来温暖指数? – Barka
切换到64位操作系统。 –