0

我是 lucene 的新手。我对lucene的管理内存有些疑惑。

  • Lucene 是否需要用户确定它可以使用的内存大小?
  • 或者如果不需要,如何在lucene中根据机器内存大小自动管理内存分配?

呃,这个问题不限于lucene,大家可以告诉我一些关于内存管理的一般建议吗?

4

2 回答 2

0

两个有趣的、与内存相关的 Lucene 项目:

  1. MMapDirectory - 使用操作系统缓存将部分 lucene 索引加载到内存中,以便更快地查找。
  2. DEFAULT_RAM_BUFFER_SIZE_MB - 设置内存缓冲区大小,在存储到磁盘之前,写入索引时 - 较大的值通常意味着更好的写入性能(如果您受 I/O 限制)。
于 2012-12-02T22:16:37.193 回答
0

看一下 IndexWriter 配置 API: http: //lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/index/IndexWriterConfig.html

设置java堆空间当然有帮助,见: http ://rimuhosting.com/knowledgebase/linux/java/-Xmx-settings

然后您管理索引的实践和政策将产生影响。减少非常昂贵的操作是有帮助的,例如优化,或者大批量的插入或删除等。

如果您真的在寻找一般管理内存的方法,我会引导您访问以下资源: https ://stackoverflow.com/faq#dontask (这里只是 本书的几个例子)

于 2012-11-27T17:39:22.453 回答