mercurial – hg状态第一次很慢
发布时间:2020-12-20 11:14:56 所属栏目:Python 来源:网络整理
导读:有没有人知道为什么hg状态在 Windows客户端上第一次从命令行调用时很慢(3-10秒)(我假设它在之后被缓存). hg status是一个本地操作,它不应该花那么长时间,特别是空的repos. 在具有多个更改的活动存储库和没有文件的全新存储库中都是这种情况.因此,回购的大小
有没有人知道为什么hg状态在
Windows客户端上第一次从命令行调用时很慢(3-10秒)(我假设它在之后被缓存).
hg status是一个本地操作,它不应该花那么长时间,特别是空的repos. 在具有多个更改的活动存储库和没有文件的全新存储库中都是这种情况.因此,回购的大小似乎不是性能的一个因素. 解决方法
当您运行hg status命令时,Mercurial必须扫描存储库中的几乎每个目录和文件,以便它可以显示文件状态. Hg必须为每个托管文件执行至少一个昂贵的系统调用,以确定自上次Mercurial检查后它是否已更改,这是无法避免的.
我相信后续调用hg st的原因更快是因为OS保留了所有最近访问过的文件的缓存信息 – 如果文件没有被修改则保留磁盘访问权限.有时文件本身甚至可能由OS保留内存映射,或者在HDD缓冲区上完全缓存. 编辑:另外,如果你有一段时间没有调用hg,操作系统将需要从磁盘读取hg可执行文件及其依赖项,因为它们可能尚未缓存在RAM上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |