2012-04-21 3 views
6

Я использую EGit на довольно большом и сложном наборе Java-проектов (более миллиона строк кода) и десятилетней истории.
Здесь я сталкиваюсь с серьезными проблемами производительности с EGit, так как даже небольшое изменение одной строки в файле Java заставляет EGit повторно индексировать пару минут, что замедляет работу всей системы. Действительно, даже командная строка git немного медленна, так как «git status» занимает около минуты из командной строки, но я могу жить с этой проблемой производительности, & Проблема с задержкой диалогового окна EGit (link). Поскольку я могу использовать командную строку git для фиксации и обновления, но я не хочу компрометировать производительность Eclipse, так как это влияет на производительность.Предложения по оптимизации EGit на Eclipse

Ниже то, что я пытался, выполняя поиск в Google и просить людей вокруг:

  1. Добавлена ​​папка все классы в файле исключить. В самом деле, попробовал также накладывать класс folderin .gitignore на время.
  2. Gave Egit достаточно времени, чтобы завершить индексирование, удерживая машину в течение одного дня.
  3. Git staging, history и все другие виды затмений закрываются в верстаке Eclipse во время разработки.
  4. Был ли «git gc» - это повлияло на производительность командной строки, но вряд ли какая-либо разница для EGit.
  5. Непроверенный декоратор для Git. Настройки -> Общие -> Внешний вид -> Этикетки.
  6. Удалено cygwin из пути, так как читайте где-нибудь на форуме, что JGit может использовать cygwin для преобразования пути.
  7. Увеличенный кеш окна от 10 до 70 м в Eclipse (Настройки -> Команда -> Гит -> кеш окна).

PS: Репозиторий Git указывает на удаленный репозиторий svn. Кроме того, я новичок git, возможно, ошибся в настройке, поэтому, пожалуйста, не стесняйтесь указывать что-либо.

Вот моя системная информация, у меня нет очень причудливых аппаратных спецификаций, но в некоторой ОЗУ, чтобы сэкономить (8 ГБ).

  • ГИТ-гуй версия 0,16 GITGUID
  • версия мерзавец: 1.7.10.mysysgit.1
  • JDK 1.6_025
  • Eclipse, версия: версия 3.7.2 Java EE с параметрами -Xms1536m -Xmx1536m
  • EGit: 1.3.0.201202151440
  • Windows 7 Процессор: Core 2 Duo 2.6GHz

ответ

0

это проблема между CVCS (централизованная VCS) и DVCS (распределенная) VCS:

  • Один SVN-репо может содержать данные на основе GB.
  • a Git repo следует хранить небольшим и использовать submodules, чтобы представлять через несколько репозиториев Git.

Я подозреваю, что много репозиториев могло бы работать лучше, чем один гигантский репозиторий Git. В противном случае возникают проблемы синхронизации, например, в bug 323839.

Но это означает управление (упрощенную) синхронизацию между репозиториями Git и одним SVN-репо вручную через рабочую область SVN, с которой вы копируете в свои репозитории Git, или на которые вы копируете Git repos новые эволюции обратно в SVN workspace для фиксации в.

+1

VonC - Согласен, но есть определенная проблема с реализацией Egit, так как такое же большое git repo отлично работает на Linux-боксе с IntelliJ), хотя я согласен, что файловые системы Linux намного быстрее. Итак, могу ли я создать один центральный репозиторий Git, который является клоном SVN, а затем иметь несколько небольших Git repo из гигантского центрального Git repo? – Hemant

+0

@ Gemant нет, вы не можете (не с возможностью возврата к репо SVN). Вы можете определить один репозиторий Git, который объявляет все мелкие как подмодули, но не будет никакой ссылки с репо SVN. Это оставляет механизм ручной синхронизации. – VonC

+0

Vonc - Спасибо за разъяснение. Я продолжу изучать свои варианты ... также надеюсь, что команда Egit сделает некоторые настройки производительности быстрее. – Hemant

3

Возможно, это не совсем ваша проблема, но эта страница появляется в google относительно производительности egit. Когда-то источником проблем с производительностью являются необработанные (индексированные?) Файлы. Убедитесь, что в дереве локального каталога нет большого количества файлов без следа, так как это серьезно влияет на производительность. Я удалил режиссера с файлами 10K + и зафиксировал эффективность с 1 + минуты, чтобы открыть диалог фиксации на пару секунд.

+0

В моем репозитории нет никаких файлов без следа. Я работаю над огромным репозиторием, который имеет около ~ 28 тыс. Java-файлов и 136 тыс. Коммитов, но большинство из них должно быть уже упаковано. – Hemant

+0

Попробуйте клонирование 'git: // git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'. Проверка ядра Linux имеет около 45 тыс. Файлов, а ядро ​​имеет более 300 тыс. Транзакций. Репо с 28k файлами и 136k коммитов является большой, а не огромной. –

+0

Для огромного репо попробуйте клонировать 'https: // github.com/mozilla/gecko-dev.git'. Клону нужно будет передавать около 1,5 ГБ данных по одному проводу ... –

Смежные вопросы