【问题标题】:How to get doxygen to run faster?如何让 doxygen 跑得更快?
【发布时间】:2010-09-17 05:16:25
【问题描述】:

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

让它只处理更改的文件怎么样?

【问题讨论】:

    标签: build-process doxygen


    【解决方案1】:

    来自 Doxygen 文档:

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

    只需放置一个排除模式,例如 这个在配置文件中:

    EXCLUDE_PATTERNS = /test/

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

    【讨论】:

    • 这可能是我能想到的最好的主意 - 我可以排除尚未包含任何文档的目录。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        Doxygen 擅长查找文件之间的连接,无论是否更改。但是 Doxygen 不会记住关于未更改文件的信息,因此它必须每次都处理整个代码库。

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

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

        【讨论】:

          【解决方案5】:

          我认为让 Doxygen 在正常的开发周期上运行并不是一个好主意。我们的 Doxygen 构建作为我们持续集成服务器职责的一部分运行。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-12-01
            • 1970-01-01
            • 2011-02-09
            • 2013-10-30
            • 1970-01-01
            • 1970-01-01
            • 2012-09-30
            相关资源
            最近更新 更多