Doxygen impiega circa 12 ore per funzionare sulla nostra base di codice. Questo è principalmente dovuto al fatto che c'è un sacco di codice da elaborare (linee ~ 1.5M). Tuttavia, si sta rapidamente avvicinando al punto in cui non possiamo fare gli aggiornamenti della documentazione notturna perché impiegano troppo tempo. Abbiamo già dovuto ridurre la profondità del grafico per ridurlo a 12 ore.Doxygen è lento
Ho provato gli approcci standard, ma ho davvero bisogno di un output di alta qualità, e questo include grafici e SEARCH_INCLUDES. Ho una macchina abbastanza buona per avviare Doxygen, ma Doxygen non sfrutta i suoi numerosi core. (Mette una singola CPU sul server di build, ma è solo il 4% del sistema disponibile.) Avere una build Dot multithread è comoda, anche se è solo la metà del tempo di costruzione.
Esistono tecniche che è possibile utilizzare per eseguire doxygen tramite più processi e dividere manualmente l'attività? Ho visto alcuni discorsi sulla creazione di file di tag, ma non li capisco abbastanza per sapere se farebbero ciò che voglio. Quello che sto cercando è qualcosa di simile:
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
Naturalmente, sto solo facendo roba, ma questa è un'idea di quello che sto cercando. Inoltre, userei molto più di 4 processi.
Il server dispone di RAM sufficiente per mantenere l'intero database in codice memorizzato nella cache ed eseguire doxygen senza scambiare? – mpartel
Più RAM e/o disco rigido più veloce. Prendi un SSD da 80 GB e metti il tuo codice su quello. Il software che richiede un'intensità dell'IO trarrà enormi benefici da un moderno disco fisso a stato solido. –
Bene, attualmente è su un array RAID 10 di unità 10k, quindi non dovrebbe essere così lento ... – alficles