有没有人知道为什么在windows客户端上第一次从命令行调用hg status时,它会很慢(3-10秒)(我假设在那之后它会被缓存)。
hg status是一个本地操作,它不应该花那么长时间,特别是在有空repos的情况下。
这既适用于具有多个更改的活动存储库,也适用于不包含文件的全新存储库。因此,回购的大小似乎不是影响性能的因素。谢谢!
发布于 2010-08-25 11:21:54
当您运行hg status命令时,Mercurial必须扫描存储库中的几乎每个目录和文件,以便显示文件状态。Hg必须为每个托管文件执行至少一次昂贵的系统调用,以确定自上次Mercurial检查以来它是否发生了更改,这是不可避免的。
我相信,后续对hg st的调用速度更快的原因是,如果文件没有被修改,操作系统会保留所有最近访问的文件的缓存信息-avoiding磁盘访问。有时,文件本身甚至可能保留由操作系统映射的内存,或者完全缓存在HDD缓冲区中。
编辑:另外,如果您有一段时间没有调用hg,操作系统将需要从磁盘读取hg可执行文件及其依赖项,因为它们可能尚未缓存在RAM中。
https://stackoverflow.com/questions/3558427
复制相似问题