如何让doxygen运行得更快?

时间:2008-10-14 23:09:34

标签: build-process doxygen

Doxygen有点慢 - 处理整个项目大约需要几分钟,因此对于小的增量更改,这比实际构建其余代码要长。有成千上万的文件没有任何文档,所以我猜它花了大部分时间来处理它们。有没有办法让它在没有任何文档的情况下跳过文件?

如何让它只处理更改的文件?

5 个答案:

答案 0 :(得分:11)

来自Doxygen文档:

  

如何排除所有测试目录   从我的目录树?

     

简单地将排除模式设为   这在配置文件中:

     

EXCLUDE_PATTERNS = / test /

因此,您应该使用模式来排除文件。自从我使用Doxygen以来已经很长时间了,但我不记得任何只处理更改文件的选项。

答案 1 :(得分:6)

我发现关闭选项SEARCH_INCLUDES会产生很大的影响。它正在查看整个平台SDK并包含编译器的路径,这些路径无论如何都没有记录,也不会出现在生成的文档中。

答案 2 :(得分:5)

有一个DOT_NUM_THREADS选项可以提高多核计算机的性能。不幸的是,doxygen本身只是单线程。

另一种方法是将代码组织到模块中,为每个模块运行一个单独的doxygen实例,并将生成的标签链接在一起:http://www.doxygen.nl/manual/external.html

答案 3 :(得分:3)

Doxygen善于发现文件之间的连接,无论是否改变。但Doxygen不记得有关未更改文件的信息,因此每次都必须处理整个代码库。

可能是一个解决方案是组织项目,使得从未更改的文件属于从Doxygen范围中排除且其文档已经可用的一个模块。然后就可以告诉Doxygen将新构建的文档链接到现有的模块文档。

更进一步,还可以按模块运行Doxygen,仅处理已更改的模块和链接到所有模块文档的顶级文档。

答案 4 :(得分:1)

我不认为Doxygen在正常的开发周期运行是个好主意。我们的Doxygen构建作为Continuous Integration服务器职责的一部分运行。

也就是说,每次构建运行doxygen都有一些好处,可以捕获丢失的文档。 因此,我将修改doxygen配置以删除图表,甚至停止苹果将其导入xcode。