我一直在测试各种方法,以缩短编译整个c ++项目所需的时间。目前大约需要5分钟。我尝试了distcc,ccache等。最近,我发现,如果我将整个项目复制到RAM驱动器上,然后从那里进行编译,它将编译时间减少到原来的30%,即1.5分钟。
显然,从RAM驱动器工作是不切实际的。那么,有谁知道我可以强制操作系统始终保持某个目录缓存的方法吗?我仍然希望目录像往常一样被同步回磁盘,但是我也总是希望复制内存中的数据。这可能吗?
编辑:
作为一种可能的解决方案,我们只是想启动一个守护程序,该守护程序rsync
每10秒左右运行一次,以将磁盘驱动器与RAM驱动器同步。然后,我们从RAM驱动器运行编译。该rsync
是极快的,但这样做真的有用吗?当然,操作系统可以做得更好。
time
汇编并与我们分享结果?这将消除一些引起争议的问题。make clean && /usr/bin/time -v make
(请勿使用内置的bash time
命令)
time
内置在bash( help time
)有很多的细节较少(没有详细选项),比GNU时间(man time
关于I / O),上下文切换,...