Doxygen tarda aproximadamente 12 horas en ejecutarse en nuestro código base. Esto se debe principalmente a que hay que procesar un gran número de código (~ 1.5M líneas). Sin embargo, se está acercando al punto en el que no podemos hacer actualizaciones de documentación todas las noches porque tardan demasiado. Ya hemos tenido que reducir la profundidad del gráfico para reducirlo a 12 horas.Doxygen es lento
He intentado con los enfoques estándar, pero realmente necesito resultados de alta calidad, y esto incluye gráficos y SEARCH_INCLUDES. Tengo una máquina bastante buena para ejecutar Doxygen, pero Doxygen no aprovecha sus muchos núcleos. (Vincula una única CPU en el servidor de compilación, pero es solo el 4% del sistema disponible.) Tener una creación de subprocesos de punto es útil, aunque eso es solo la mitad del tiempo de compilación.
¿Hay alguna técnica que pueda usar para ejecutar doxygen a través de procesos múltiples y fragmentar manualmente la tarea? He visto hablar sobre crear archivos de etiquetas, pero no entiendo lo suficiente sobre ellos para saber si harían lo que quisiera. Lo que estoy buscando es algo así como:
doxygen Doxyfile-folder1
doxygen Doxyfile-folder2
doxygen Doxyfile-folder3
doxygen Doxyfile-folder4
doxygen-join output/folder1/html output/folder2/html output/folder3/html output/folder4/html
Por supuesto, sólo estoy inventando cosas, pero eso es una idea de lo que estoy buscando. Además, usaría mucho más de 4 procesos.
¿El servidor tiene suficiente RAM para mantener la base de código en caché y ejecutar doxygen sin intercambio? – mpartel
Más memoria RAM y/o disco duro más rápido. Elige un disco SSD de 80 GB y pon tu código en eso. El software que es IO intensivo se beneficiará tremendamente de un disco duro moderno de estado sólido. –
Bueno, actualmente se encuentra en un conjunto de 10 unidades de RAID, por lo que no debería ser tan lento ... – alficles