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 rsync
cada 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 ....
time
compilar 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 time
comando)
time
construí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, ...