Pregunta

Doxygen es un poco lento: se tarda aproximadamente un par de minutos en procesar todo el proyecto, por lo que para pequeños cambios incrementales esto es más largo que en realidad construir el resto de mi código. Hay miles de archivos sin ningún tipo de documentación, así que supongo que está gastando la mayor parte del tiempo procesándolos. ¿Hay alguna forma de evitar que omita archivos sin documentación?

¿Qué hay de hacer que solo procese los archivos modificados?

¿Fue útil?

Solución

De la documentación de Doxygen:

  

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

     

Simplemente coloca un patrón de exclusión como   esto en el archivo de configuración:

     

EXCLUDE_PATTERNS = /test/

Por lo tanto, debería usar patrones para excluir archivos. Hace mucho tiempo que no uso Doxygen, pero no recuerdo ninguna opción para procesar solo los archivos modificados.

Otros consejos

Descubrí que desactivar la opción SEARCH_INCLUDES marcó una gran diferencia. Estaba buscando en todo el SDK de la plataforma e incluía rutas para el compilador que no estaban documentadas de todos modos y no aparecerían en la documentación generada.

Hay una opción DOT_NUM_THREADS que puede aumentar el rendimiento en máquinas multinúcleo. Desafortunadamente, el propio doxygen es solo un hilo.

Otro enfoque sería organizar su código en módulos ejecutados para cada módulo en una instancia doxygen separada y vincular las etiquetas resultantes entre sí: http://www.doxygen.nl/manual/external.html

Doxygen es bueno para encontrar conexiones entre archivos, ya sea cambiado o no. Pero Doxygen no recuerda información sobre archivos sin cambios, por lo que debe procesar todo el código base cada vez.

Puede ser una solución organizar el proyecto de modo que los archivos que nunca se modifican pertenecen 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 creada con la documentación de este módulo existente.

Yendo más lejos, también sería posible hacer que Doxygen se ejecute módulo por módulo, procesando solo los módulos modificados y una documentación de nivel superior que enlaza con todas las documentaciones del módulo.

No creo que tener Doxygen en un ciclo de desarrollo normal sea una buena 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 en cada compilación para capturar documentos faltantes. Así que recortaría la configuración de doxygen para las compilaciones de desarrollo y eliminaría los diagramas, e incluso detendría la importación de Apple en xcode.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top