Подтвердить что ты не робот

Какая рекомендуемая конфигурация CDT Eclipse для большого проекта С++ (индексатор берет навсегда)

Я работаю над некоторым унаследованным кодом на С++, написанным с использованием "vi" и "emacs", и я пытаюсь создать настройку CDT eclipse для ее поддержки (в Linux). Две основные проблемы, с которыми я столкнулся, - это то, что индексирование занимает очень много времени (более 4 часов), и даже когда это закончилось, затмение едва ли реагирует.

База кода структурирована с глубиной 3-4 уровня:

/system/${category}/${library}/
/server/${serverName}/${component}/

Пример:

/system/CORE/CommandLine/*.cpp
/system/CORE/Connection/*.cpp
...
/server/Authentication/DB/Objects/*.cpp
/server/Authentication/Main/*.cpp

В системе /system/ * имеется около 200 "модулей" и около 50 под /server/Authentication/ *. Существует также удивительно запутанная система make с 20-летней стоимостью make-кода, написанная людьми, которые хотели продемонстрировать свои способности: -)

Я уже пробовал два подхода

1) Два проекта eclipse cdt, а именно /system и/Authentication

2) Один проект eclipse cdt на "модуль", заканчивающийся +200 модулями. Я даже вычислял зависимости между модулями.

В обоих подходах индексация занимает очень много времени. При подходе 1) я получаю довольно много проблем с нерешенными зависимостями. С приближением 2) затмение едва реагирует, когда я нажимаю Ctrl + щелкаю функцию, я могу пойти на кофе и вернуться, прежде чем он откликнется...

Кто-нибудь там работал с такими крупными проектами? Что вы предлагаете?

4b9b3361

Ответ 1

Общая рекомендация здесь - предоставить больше ОЗУ для Eclipse. Во-первых, вам нужно настроить файл конфигурации eclipse.ini, поскольку по умолчанию он не подходит для больших проектов. Вот мой eclipse.ini файл:

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512M 
-Xmx4096M 
-XX:PermSize=256M 
-XX:MaxPermSize=512M

Здесь я использовал -Xmx4096M для обеспечения 4 ГБ ОЗУ.

Чтобы улучшить отзывчивость, вам также необходимо настроить ограничения кэширования индексатора. Я рекомендую увеличить все параметры в 2-3 раза, в зависимости от размера проекта.

Ответ 2

Использование фильтров ресурса Project мне очень помогло. Я удалил из папок дерева проектов, которые я не хотел изменять или представлять для индексирования.

Чтобы создать новый фильтр, просто щелкните правой кнопкой мыши по проекту, а затем откройте панель Свойства, затем выберите Ресурс → Фильтры ресурсов

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.user/concepts/resourcefilters.htm

Иногда, если ваши источники проекта слишком большие (например, около 5 ГБ), вам нужно использовать фильтр, иначе процесс индексирования никогда не закончится правильно.

Ответ 3

-Xss8g на eclipse.ini также понадобился для Neon для предотвращения.

Также рассмотрим ulimit -Sv unlimited.

Протестировано на Ubuntu 14.04.