J'ai testé différentes méthodes pour améliorer le temps nécessaire à la compilation de l'ensemble de mon projet c ++. Actuellement, cela prend ~ 5 minutes. J'ai expérimenté avec distcc, ccache et autres. Récemment, j'ai découvert que si je copiais l'intégralité de mon projet sur un lecteur de mémoire vive, puis que je compilais à partir de là, le temps de compilation était réduit à 30% de son temps d'origine, à savoir 1,5 minute.
Évidemment, travailler à partir du lecteur de RAM n'est pas pratique. Alors, est-ce que quelqu'un connaît un moyen de forcer le système d'exploitation à toujours garder un répertoire en cache ? Je veux toujours que le répertoire soit synchronisé sur le disque comme d'habitude, mais je veux toujours aussi une copie des données en mémoire. Est-ce possible?
EDIT:
Comme solution possible, nous avons simplement pensé à lancer un démon qui s'exécute rsync
toutes les 10 secondes environ pour synchroniser le lecteur de disque avec un lecteur RAM. Ensuite, nous exécutons la compilation à partir du lecteur RAM. Le rsync
est flamboyant, mais cela fonctionnerait-il vraiment? L'OS pourrait sûrement faire mieux ....
time
votre compilation et partager le résultat avec nous? Cela dissiperait une certaine controverse. make clean && /usr/bin/time -v make
(n'utilisez pas la time
commande intégrée bash )
time
bash intégrée ( help time
) a beaucoup moins de détails (pas d'option verbeuse) que l'heure GNU ( man time
) concernant les entrées / sorties, le changement de contexte, ...