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