2012-03-05 7 views
17

Estoy trabajando en algún código heredado de C++ escrito con "vi" y "emacs" y estoy intentando construir una configuración de eclipse CDT para mantenerlo (en linux). Los dos problemas principales a los que me he enfrentado son que la indexación lleva mucho tiempo (más de 4 horas) y que incluso una vez que haya terminado, el eclipse apenas responde.¿Cuál es la configuración recomendada de CDT de Eclipse para grandes proyectos de C++? (Indexer lleva una eternidad)

La base de código está estructurado de una "profunda 3-4 nivel" manera:

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

Ejemplo:

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

Hay alrededor de 200 "módulos" en/sistema/* y alrededor 50 en/servidor/Autenticación/*. También hay un sistema de construcción increíblemente complicada con 20 años el valor de maquillaje código escrito por gente que quería showoff su capacidad de hacer :-)

He intentado dos enfoques hasta ahora

1) Dos proyectos eclipse cdt, concretamente/sistema y/Autenticación

2) Un proyecto eclipse cdt por "módulo" que termina con +200 módulos. Incluso calculé las dependencias entre módulos.

En ambos enfoques, la indexación lleva mucho tiempo. En el enfoque 1) Tengo bastantes problemas con las dependencias no resueltas. Con el enfoque 2) el eclipse apenas responde, cuando presiono + clic en una función, puedo tomar un café y regresar antes de que responda ...

¿Alguien por ahí ha trabajado con grandes proyectos como estos? ¿Que sugieres?

+0

¿Está configurado su 'Windows-> Preferences-> C/C++ -> Indexer' en" Rápido (recomendado) "o" Full "indexer? Debería ser "Rápido". – iammilind

+1

@iammilind No parece tener esa opción (eclipse Indigo) – krico

+1

@iammilind parece en las versiones más recientes, esa opción no está disponible – krico

Respuesta

19

La recomendación general aquí es proporcionar más RAM para Eclipse. Primero, deberá modificar su archivo de configuración eclipse.ini ya que el predeterminado no es adecuado para grandes proyectos. Aquí está mi eclipse.ini archivo:

-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 

Aquí he utilizado -Xmx4096M para proporcionar 4 GB de RAM.

Para mejorar la capacidad de respuesta, también deberá configurar Indexer Cache limits. Recomiendo aumentar todos los parámetros en 2-3 veces, dependiendo del tamaño del proyecto.

+0

Esto sin duda es una buena recomendación. No mencioné esto, pero ya había cambiado mi -Xmx y los límites de la memoria caché del indexador. Supongo que no hay mucho más que hacer :-( – krico

+0

Ok, no tengo nada más que recomendar, aunque sin estas configuraciones mi indexación de proyecto lleva mucho tiempo como usted describió. Mi proyecto también es grande. – ks1322

1

Usando el Los filtros de recursos del proyecto me ayudaron mucho. Quité de las carpetas del árbol de proyectos que no deseaba modificar ni enviar a indexación.

Para crear un nuevo filtro haga clic derecho sobre el proyecto y luego abrir las Propiedades del panel luego llegar de Recursos -> Filtros Recursos

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

A veces, si sus fuentes del proyecto son demasiado grandes (ej: alrededor de 5GB) necesita usar un filtro; de lo contrario, el proceso de indexación nunca termina correctamente.

0

-Xss8g en eclipse.ini también se necesitó en Neon para evitar el desbordamiento de la pila.

Considera también ulimit -Sv unlimited.

Probado en Ubuntu 14.04.

Cuestiones relacionadas