2008-10-14 14 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 запустить на обычном Dev цикле является хорошим идея. Наша сборка Doxygen работает как часть обязанностей сервера Continuous Integration.

Это говорит о наличии преимуществ использования doxygen для каждой сборки, чтобы уловить недостающие документы. Итак, я бы обрезал конфигурацию doxygen для dev, создавая удаляющие диаграммы, и даже останавливал apple, импортируя его в xcode.

 Смежные вопросы

  • Нет связанных вопросов^_^