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 rsync
ogni 10 secondi circa per sincronizzare l'unità disco con un'unità RAM. Quindi eseguiamo la compilation dall'unità RAM. È rsync
velocissimo, ma funzionerebbe davvero? Sicuramente il sistema operativo potrebbe fare di meglio ....
time
tua compilation e condividere il risultato con noi? Dissolverebbe alcune controversie sollevanti. make clean && /usr/bin/time -v make
(non usare il time
comando incorporato bash )
time
built 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, ...