7

最近,我的老板要求我在我工作的公司中探索 OpenGrok 的可能性。首先,我在我的 virtualbox lubuntu 上做了几个项目,它工作正常,但有点慢。我把这归咎于我的笔记本电脑的参数平庸。

现在我拥有更大比例的虚拟数据,并且我还在对更大数量的数据运行索引(SVN 存储库 - 100 个不同的项目,其中一些具有多个分支、标签和主干,总共大约 100 000 个文件,只有几 GB尺寸)。所有文件都直接在 SRC_ROOT 中签出。

我希望能以相当快的速度建立索引,但它现在已经运行了五天多。我可以看到多个线程通过 htop 运行,但 CPU 使用率为 0.5-2.5%,内存使用率为 0.9%。所以我想这不是计算能力的问题。除非有非常慢的硬盘驱动器,否则我不知道问题出在哪里。

此外,索引过程似乎正在放缓。一开始大约是 1 秒/文件,现在大约是 5 秒/文件。不幸的是,我还没有触发进度选项,所以我不知道它还能运行多长时间。

任何想法如何使索引更快?如何更有效地利用资源?目前的速度根本无法使用......

4

3 回答 3

2

我认为提高性能的简单方法是通过设置 JAVA_OPTS 并使用 64 位 java 来运行 opengrok 索引。此外,使用 derby 存储生成的索引数据也可以提高性能。有关如何使用和设置 opengrok 的更多信息

于 2014-09-03T09:58:00.350 回答
0

我认为问题出在 SVN,尝试调试并提高从您的 VM 访问 SVN 的速度,或者完全禁用(暂时)svn 以获得快速索引(您可以稍后逐步将历史记录添加到索引中 - 每个项目,即使它会花几天时间,请参阅有关如何为每个项目运行索引器的选项)或者如果您可以镜像 SVN 存储库并进行本地 svn 调用,这也应该会给您带来提升。因此得出结论 {OpenGrok 可以检测 svn,跳过历史创建(动态启用它)并仅索引结帐,然后稍后添加本地历史以避免长时间等待动态生成历史。也就是说,git 和 hg 在历史索引方面似乎与 {OpenGrok 配合得很好。

于 2019-02-28T06:54:15.207 回答
-1

我自己也遇到过这个问题,我发现索引器大部分时间(>90%)都在查询源代码控制系统。

也就是说,我使用的一些项目确实使用 Perforce 和 SVN,所以我不想完全禁用它们,所以我所做的是索引两次——首先,所有涉及源代码控制的选项都被禁用,并且然后再次启用一切。

那样的话,它仍然需要很长时间(在我的情况下是几天),但至少我有一个可用的索引在几个小时内启动并运行,然后它可以花几天时间来处理所有历史记录。

后续索引应该更快,因为我希望历史缓存仅针对比缓存历史更新的文件更新。

(也就是说,如果我可以在外部更新历史缓存,这样在我启动索引器之前一切准备就绪,并且将索引器配置为根本不查找历史信息,而是只索引缓存的内容,那就太好了)

于 2019-12-23T19:57:12.200 回答