Eu tenho testado métodos diferentes para melhorar o tempo necessário para compilar todo o meu projeto c ++. Atualmente, leva ~ 5 minutos. Eu experimentei distcc, ccache e outros. Recentemente, descobri que se eu copiar todo o meu projeto em uma unidade de RAM e compilar a partir daí, o tempo de compilação será reduzido para 30% do original - apenas 1,5 minutos.
Obviamente, trabalhar a partir da unidade de RAM não é prático. Então, alguém sabe como eu posso forçar o sistema operacional a manter sempre um determinado diretório em cache ? Ainda quero que o diretório seja sincronizado de volta ao disco normalmente, mas também quero sempre uma cópia dos dados na memória. Isso é possível?
EDIT:
Como uma solução possível, pensamos apenas em lançar um daemon que é executado a rsynccada 10 segundos ou mais para sincronizar a unidade de disco com uma unidade de RAM. Depois, executamos a compilação a partir da unidade de RAM. O rsyncé super rápido, mas isso realmente funciona? Certamente o sistema operacional poderia fazer melhor ....
timecompilar e compartilhar o resultado conosco? Isso dissiparia algumas controvérsias. make clean && /usr/bin/time -v make(não use a festa construído no timecomando)
timeconstruída em bash ( help time) tem muito menos detalhes (sem detalhado opção) do que o tempo GNU ( man time) sobre o I / O, trocas de contexto, ...