2016-04-21 46 views
1

当你right-click > index一个项目有几个选项:Eclipse的索引 - 什么不同的选择呢

  1. 重建
  2. 梳洗所有文件
  3. 更新与修改后的文件
  4. 重新解析未解决包括

我一直只是重建每一次,但现在我正在一个巨大的项目,并承担不起 去做;当我修改文件时,无论是.cpp还是.h,我都需要知道要执行哪个“索引”操作。

对于每个 '索引' 选项:

  1. 是什么正是吗?
  2. 成本(相对内存,CPU时间)是多少?

从Eclipse的文档将是有益的,但已经搜查,但没有找到任何。

+0

我会在CDT代码库中进行一些研究,并在我有机会时回答您的实际问题,但现在我想指出,在正常编写代码的过程中调用任何*这些命令shouldn'没有必要。在首次检出项目后建立索引后,自动索引更新功能(在Preferences | C/C++ | Indexer中通过选中“自动更新索引”和“在每次保存文件后立即更新索引”)来激活足以使指数保持最新。 – HighCommander4

+0

@HighCommander4它应该自动更新,但我发现有时需要手动重新索引。 – Adrian

回答

1

重建只能在整个项目上执行。它抛弃了项目的整个索引,并从头开始重新编译索引项目中的每个文件。

由于它通过丢弃前一个索引开始,取消重建将导致一个空的或部分构建的索引。


其他动作可以对整个项目进行要么,或在项目文件夹或文件(或一组文件夹/文件)上。

他们都浏览所选内容中的文件,并更新索引中的部分或全部文件。与重建不同,它们不是从清除索引开始的,因此取消它们是相对安全的。

清新所有文件更新所选文件中的所有文件。如果在项目中调用,最终结果与“重建”相当。

使用修改后的文件进行更新仅更新选择中自上次更新索引时发生更改的那些文件,这些文件由其时间戳记及其内容的散列确定。

重新解决未解决包含仅更新选择中哪些配置信息(如指定的包含路径)已更改的文件,并且更改导致之前未解决的包含现在得到解决。


根据项目大小和运行机器的种类,性能特征可能会有很大差异。我在一个非常大的项目(数百万行)上工作,在相对较新的桌面上,其中的重建可能需要20-30分钟。该操作通常是CPU绑定的,但索引器当前是单线程的,所以它只会占用一个CPU内核。


最后,我想我说的话再次提我对这个问题的评论:如果您配置要在Preferences | C/C++ | Indexer自动更新索引,你不应该需要手动调用这些命令在所有,至少在理论上。在实践中,我发现偶尔需要重建(例如每几周一次),特别是在配置更改(例如添加新的包含路径)之后。


来源:此mailing list post,阅读执行动作,以及使用CDT的经验。

相关问题