2008-10-14 97 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中。