Abbiamo una grande base di codice che ha utilizzato con successo boost :: signals per anni. Recentemente abbiamo deciso di potenziare la v1.54 e abbiamo deciso che, poiché boost: i segnali erano deprecati, avremmo dovuto passare a boost :: signals2.Tempi di compilazione con boost :: signal2 molto lento
Il problema che stiamo vedendo è che i tempi di compilazione sono orrendi. Ad esempio, un piccolo file .cpp impiegherà ora più di 20 secondi in cui era necessario 4.
Analogamente, una delle nostre librerie (grande) che impiegava circa 10 minuti per generare ora richiede fino a un'ora. Ho cercato dappertutto la documentazione su come migliorare questo attraverso intestazioni, macro, ecc precompilati, ma non ho ancora trovato nulla che migliori la situazione.
Visualizzazione cl.exe in procmon rivela una grande quantità di IO nelle librerie boost :: signals2 e mpl.
Non abbiamo bisogno della sicurezza del filetto che i segnali2 forniscono a questo punto siamo vicini a staccare la spina dall'aggiornamento e tornare ai segnali. Qualcuno ha qualche suggerimento o esperienza con questo prima di arrenderci?
Usiamo VS2012 con molta RAM/disco/ecc.
Si sta utilizzando le intestazioni precompilate? –
Signals2 utilizza modelli variadici, sono emulati in VS2012 a costi significativi. Risolto in VS2013. Tra Boost che si adatta a questo e VS2013 sul tuo desktop, dai una manciata di mesi. –
@ HansPassant Grazie per l'informazione, non l'avevo considerato. Dato che non è possibile per noi aspettare che VS2013 sia la migliore linea di condotta per tornare alla libreria dei segnali secondo te? Come è ora, il codice è inutilizzabile a causa dei tempi di compilazione lenti. – pennyowe