2016-04-21 45 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的經驗。

相關問題