Ho testato diversi metodi per migliorare il tempo necessario per compilare il mio intero progetto c ++. Attualmente ci vogliono circa 5 minuti. Ho sperimentato con distcc, ccache e altri. Di recente, ho scoperto che se copio il mio intero progetto su un'unità RAM, e poi compilo da lì, riduce il tempo di compilazione fino al 30% del suo originale - solo 1,5 minuti.
Ovviamente, lavorare dall'unità RAM non è pratico. Quindi, qualcuno conosce un modo in cui posso forzare il sistema operativo a mantenere sempre nella cache una determinata directory ? Voglio ancora che la directory venga sincronizzata su disco come al solito, ma voglio sempre anche una copia dei dati in memoria. È possibile?
EDIT:
Come possibile soluzione, abbiamo appena pensato di avviare un demone che viene eseguito rsyncogni 10 secondi circa per sincronizzare l'unità disco con un'unità RAM. Quindi eseguiamo la compilation dall'unità RAM. È rsyncvelocissimo, ma funzionerebbe davvero? Sicuramente il sistema operativo potrebbe fare di meglio ....
timetua compilation e condividere il risultato con noi? Dissolverebbe alcune controversie sollevanti. make clean && /usr/bin/time -v make(non usare il timecomando incorporato bash )
timebuilt in bash ( help time) ha molti meno dettagli (nessuna opzione dettagliata) rispetto al tempo GNU ( man time) riguardante l'I / O, i cambi di contesto, ...