HG статус медленный в первый раз
Кто-нибудь знает почему hg status
работает медленно (3-10 секунд) при первом вызове из командной строки на Windows-клиенте (я полагаю, что он кешируется после этого).
hg status
это локальная операция, и она не должна занимать так много времени, особенно с пустыми репозиториями.
Это относится как к активному репозиторию с несколькими изменениями, так и к новому репо без файлов. Таким образом, размер репо не влияет на производительность. Спасибо!
1 ответ
Когда вы запускаете hg status
По команде, Mercurial должен сканировать почти все каталоги и файлы в вашем хранилище, чтобы иметь возможность отображать состояние файлов. Hg должен выполнить хотя бы один дорогой системный вызов для каждого управляемого файла, чтобы определить, изменился ли он с момента последней проверки Mercurial, и этого избежать нельзя.
Я считаю причину последующих звонков hg st
быстрее из-за кэшированной информации, которую ОС сохраняет обо всех недавно использованных файлах, что исключает доступ к диску, если файл не был изменен. Иногда сами файлы могут даже оставаться в памяти, отображаемой ОС или кэшироваться в буфере жесткого диска.
Редактировать: также, если вы не вызывали hg какое-то время, ОС должна будет прочитать исполняемый файл hg и его зависимости с диска, поскольку они, возможно, уже не кэшируются в оперативной памяти.