2008-10-14 27 views
14

Doxygen es un poco lento: lleva aproximadamente un par de minutos procesar todo el proyecto, por lo que para pequeños cambios incrementales es más largo que construir el resto de mi código. Hay miles de archivos sin documentación, así que supongo que está pasando la mayor parte del tiempo procesándolos. ¿Hay alguna forma de evitar que se salte archivos sin documentación?¿Cómo hacer que doxygen funcione más rápido?

¿Qué tal si solo procesa archivos modificados?

Respuesta

11

De la documentación Doxygen:

¿Cómo puedo excluir todos los directorios de prueba de mi árbol de directorios?

En pocas palabras un patrón de excluir como esto en el fichero de configuración:

EXCLUDE_PATTERNS = /test/

Por lo tanto, usted debe utilizar patrones para excluir archivos. Ha pasado mucho tiempo desde que utilicé Doxygen, pero no recuerdo ninguna opción para procesar solo los archivos modificados.

+0

Esta es probablemente la mejor idea que se me ocurre, puedo excluir los directorios que aún no incluyen documentación. –

3

Doxygen es bueno para encontrar conexiones entre archivos, ya sean modificados o no. Pero Doxygen no recuerda información sobre archivos sin modificar, por lo que debe procesar toda la base de código cada vez.

Puede ser una solución sería organizar el proyecto de modo que los archivos nunca cambiados pertenezcan a un módulo que está excluido del alcance de Doxygen y cuya documentación ya está disponible. Entonces sería posible decirle a Doxygen que vincule la documentación recién compilada a la documentación de este módulo existente.

Adelante, también sería posible hacer que Doxygen ejecute el módulo por módulo, procesando solo los módulos modificados y una documentación de nivel superior que enlaza con todos los documentos del módulo.

6

Encontré que apagar la opción SEARCH_INCLUDES hizo una gran diferencia. Revisaba toda la plataforma SDK e incluía rutas para el compilador que, de todos modos, no estaban documentadas y no aparecían en la documentación generada.

5

Hay un DOT_NUM_THREADS opciones que pueden aumentar el rendimiento en máquinas multinúcleo. Lamentablemente, doxygen solo tiene un solo hilo.

Otro enfoque sería organizar el código en módulos de una duración de cada módulo una instancia separada y doxygen linkt las etiquetas resultantes juntos: http://www.stack.nl/~dimitri/doxygen/external.html

1

no creo que tenga Doxygen ejecuta en un ciclo normal de dev es un buen idea. Nuestra compilación de Doxygen se ejecuta como parte de las responsabilidades de nuestro servidor de integración continua.

Dicho esto, hay algunas ventajas de ejecutar doxygen cada compilación para capturar los documentos que faltan. Así que recortaría la configuración de doxygen para compilaciones de desarrollo eliminando diagramas, e incluso dejaría de importar apple en xcode.

Cuestiones relacionadas