Рейтинг:3

Статус Git очень медленный на одном ПК

флаг do

Я не уверен, является ли это проблемой Ubuntu или проблемой git...

у меня два компа

  • один - это виртуальная машина Ubuntu (назовем ее VM PC)
  • другой — ПК с Ubuntu (назовем его Build PC)

Оба работают под управлением Ubuntu 18.04.

Оба работают на одном и том же оборудовании (разные физические машины, но одинаковая сборка аппаратного обеспечения).

У меня очень большая структура репо, но когда я запускаю time git submodule foreach --recursive git status Я получаю дико разные времена:

  • Сборка ПК: ~40 с.
  • ВМ ПК: ~9 с

Если я просто сделаю статус git на верхнем уровне я получаю ~ 2 с на ПК для сборки и ~ 0,5 с на ПК с виртуальной машиной.

Оба работают с одной и той же версией git 2.17.1 — на самом деле две установки Ubuntu используют одни и те же сценарии установки — так что они действительно очень похожи.

Основное отличие состоит в том, что ПК для сборки имеет 3 физических 1 NVmem и 2xSSD:

  1. 256 ГБ ОС (NVM)
  2. Репозитории SW объемом 1 ТБ (тестируемый репозиторий находится здесь)
  3. 1 ТБ других репозиториев

В то время как на виртуальной машине все это находится на одном SSD в образе диска virutal box (около 500 ГБ).

Я не знаю, с чего начать отладку этой проблемы, поэтому я решил начать с этого форума :)

Обновить

Я попробовал это на твердотельном накопителе ОС на ПК для сборки и все равно получил более медленный результат .... так что это не проблема со 2-м / 3-м твердотельным накопителем или тем, как они смонтированы ...

Обновление 2

На двух разных машинах они тестируются на одном и том же репо (клонируются таким же образом с одного и того же пульта). Сборка ПК является более поздним клоном, но я надеюсь, что отладка счетчика будет такой же. Вот результаты: git count-objects -v:

ВМ ПК

количество: 281
размер: 1184
в упаковке: 1698
упаковок: 2
размер упаковки: 112961
чернослив-упаковка: 0
мусор: 0
размер мусора: 0

Сборка ПК

количество: 0
размер: 0
в упаковке: 1972 г.
упаковок: 1
размер упаковки: 112994
чернослив-упаковка: 0
мусор: 0
размер мусора: 0

очень разные значения... Я не уверен, что это значит. Поэтому я удалил и повторно клонировал репозиторий VM PC, чтобы посмотреть, не изменится ли новый клон. Вот эти значения:

количество: 0
размер: 0
в упаковке: 1972 г.
упаковок: 1
размер упаковки: 112994
чернослив-упаковка: 0
мусор: 0
размер мусора: 0

я перезапустил статус git тест и получил точно такие же результаты - где VM PC был намного быстрее

Обновление 3

Действительно странно работает: время GIT_TRACE_PERFORMANCE=1 git st на Build PC печатает загрузку отладки, но работает так же быстро, как VM PC (< 1 с). Но если я запускаю что-то еще, это занимает гораздо больше времени:

  • время GIT_TRACE_PERFORMANCE=1 git st ~ 0,5 с
  • время GIT_TRACE_PERFORMANCE=1 git st 2> /dev/null ~2 с
  • время git ул ~2 с
флаг uz
Jos
Пожалуйста, запустите `git count-objects -v` в обоих репозиториях и сообщите нам, сопоставимы ли они.
code_fodder avatar
флаг do
@jos Я провел эти тесты и обновил описание вопроса выше. Цифры получились разные, несмотря на то, что это одно и то же репо. Поэтому я удалил и повторно клонировал репозиторий VM PC (потому что это был старый клон), а затем цифры остались прежними.Но времена, когда то же самое. Любопытно, что я могу заставить Build PC работать быстро, если я использую `GIT_TRACE_PERFORMANCE`, но не если я перенаправляю вывод в /dev/null... очень странно!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.