2008-10-14 55 views
14

Doxygen有點慢 - 處理我的整個項目大約需要幾分鐘的時間,所以對於小的增量更改,這比實際構建其餘代碼的時間要長。有成千上萬的文件沒有任何文件,所以我想它是花大部分時間處理它們。有沒有辦法讓它跳過沒有任何文檔的文件?如何讓doxygen跑得更快?

如何讓它只處理更改的文件?

回答

11

從Doxygen文檔:

如何我可以排除我的目錄樹中的所有測試目錄 ?

簡單地講一個排除模式像 此配置文件中:

EXCLUDE_PATTERNS = /測試/

所以,你應該使用模式,以排除文件。自從我使用Doxygen已經很長時間了,但我不記得任何選擇只處理更改的文件。

+0

這可能是我能想到的最好主意 - 我可以排除尚未包含任何文檔的目錄。 – 2008-11-09 05:24:23

3

Doxygen擅長查找文件之間的連接,無論是否更改。但Doxygen不記得關於未更改文件的信息,所以它必須每次處理整個代碼庫。

可能的解決方案是組織項目,以便從未更改過的文件屬於從Doxygen範圍中排除並且其文檔已存在的一個模塊。然後可以告訴Doxygen將新建的文檔鏈接到這個現有的模塊文檔。更進一步,也可以通過模塊製作Doxygen運行模塊,僅處理更改的模塊和鏈接到所有模塊文檔的頂級文檔。

6

我發現關閉選項SEARCH_INCLUDES有很大的不同。它正在瀏覽整個平臺的SDK,並且包含編譯器的路徑,這些路徑沒有記錄,也不會出現在生成的文檔中。

5

有一個DOT_NUM_THREADS選項可以提高多核機器的性能。不幸的是,doxygen本身只是單線程的。

另一種方法是成模塊運行爲每個模塊一個單獨的doxygen實例和linkt生成的標籤一起組織代碼:http://www.stack.nl/~dimitri/doxygen/external.html

1

我不認爲有Doxygen的上一個正常的開發週期運行是一個很好的理念。我們的Doxygen構建是我們持續集成服務器職責的一部分。

也就是說,運行doxygen的每個構建都可以捕獲缺失的文檔。 所以我會修剪開發版本的doxygen配置去除圖表,甚至停止將蘋果導入到xcode中。