我一直在使用RAMDirectory
將我的整個索引放入內存中以提高性能,並且它的工作非常好,直到我的索引增長並增長。現在我得到OutOfMemoryException
。雖然我的磁盤索引爲1.24GB,但我懷疑RAMDirectory
對象的對象大小最終超過.NET 2GB對象大小限制,因此拋出異常。另一個原因可能是虛擬地址空間太簡單,無法找到足夠大的空洞來放置我的對象。如何使用RAMDirectory並避免出現OutOfMemoryException如果對象大小超過2GB
我想繼續使用RAMDirectory
。我該怎麼做,同時避免OutOfMemoryException
?
另請注意,當我編寫我的索引時,我呼叫IndexWriter.Optimize
,因此整個索引都在一個大文件中。
我想你會看到使用RAMDirectory進行搜索的速度最小化。 我會嘗試沒有它,我敢打賭,你會看到,性能是相當equivelent一旦你溫暖索引。 –
謝謝!需要什麼來溫暖指數? – Barka
切換到64位操作系統。 –