2008-10-14 4 views
14

Doxygen ist ein bisschen langsam - es dauert ungefähr ein paar Minuten, um mein gesamtes Projekt zu bearbeiten, also ist das für kleine inkrementelle Änderungen länger als das Entwickeln des restlichen Codes. Es gibt Tausende von Dateien ohne jegliche Dokumentation, also denke ich, dass es die meiste Zeit damit verbringt, sie zu verarbeiten. Gibt es eine Möglichkeit, Dateien ohne Dokumentation zu überspringen?Wie bekomme ich Doxygen, um schneller zu laufen?

Wie sieht es damit aus, dass nur geänderte Dateien bearbeitet werden?

Antwort

11

Von Doxygen Dokumentation:

Wie kann ich alle Test Verzeichnisse von meinem Verzeichnisbaum aus?

setzen Sie einfach ein ausschließen Muster wie dies in der Konfigurationsdatei:

EXCLUDE_PATTERNS = /test/

So sollten Sie Muster verwenden Dateien auszuschließen. Es ist lange her, seit ich Doxygen benutzt habe, aber ich erinnere mich nicht an eine Option, nur geänderte Dateien zu verarbeiten.

+0

Dies ist wahrscheinlich die beste Idee, die ich mir vorstellen kann - ich kann die Verzeichnisse ausschließen, die noch keine Dokumentation enthalten. –

3

Doxygen ist gut an den Verbindungen zwischen Dateien zu finden, entweder geändert oder nicht. Aber Doxygen erinnert sich an Informationen über unveränderte Dateien nicht, so muss es die gesamte Codebasis jedes Mal verarbeiten.

können eine Lösung, die das Projekt so zu organisieren wäre, dass niemals Dateien zu einem Modul gehören geändert, die von Doxygen Umfang und deren Dokumentation ausgeschlossen ist bereits verfügbar. Dann wäre es möglich, Doxygen anzuweisen, neu erstellte Dokumentation mit dieser vorhandenen Moduldokumentation zu verknüpfen.

geht weiter, wäre es auch möglich sein, Doxygen Lauf Modul für Modul, Verarbeitung nur geänderte Module und einer Top-Level-Dokumentation, die für alle Modul Dokumentationen Links zu machen.

6

Ich fand, dass die Option SEARCH_INCLUDES machte einen großen Unterschied ausschalten. Es wurde das gesamte Plattform-SDK durchsucht und enthielt Pfade für den Compiler, die ohnehin nicht dokumentiert waren und nicht in der generierten Dokumentation enthalten waren.

5

Es gibt eine DOT_NUM_THREADS Optionen, die die Leistung auf Multicore-Maschinen erhöhen. Leider ist Doxygen selbst nur single threaded.

würde Ein weiterer Ansatz sein, Ihren Code zu organisieren in Module für jedes Modul eine separate doxygen-Instanz und linkt die resultierenden Tags zusammen laufen: eine gute http://www.stack.nl/~dimitri/doxygen/external.html

1

glaube ich nicht mit Doxygen auf einem normalen dev Zyklus ausgeführt ist Idee. Unser Doxygen-Build läuft als Teil der Verantwortung unseres Continuous Integration-Servers.

Das heißt, es gibt einige Vorteile der Ausführung doxygen jeden Build fehlende Dokumente zu fangen. Also würde ich die doxygen Config für Dev-Builds trimmen, Diagramme zu entfernen, und sogar aufhören, Apple in xcode importieren.