Pregunta

Tengo algunas grandes (~ 600k líneas de código) proyectos de Delphi. Entre ellos figuran algunos componentes personalizados, que nuestro equipo ha desarrollado.

A menudo, cuando llamo a la finalización de código con ctrl + espacio o simplemente pulsando la tecla "", las cerraduras de IDE hacia arriba y piensa muy duro durante mucho tiempo. A veces, el retraso puede ser todo un minuto, o más. Otras veces, aparece inmediatamente con sugerencias.

¿Qué factores influyen en el rendimiento de IntelliSense en Delphi? ¿Hay alguna manera de mejorar este rendimiento?

Mi mejor solución hasta ahora es apagar la terminación automática, y utilizar ctrl + espacio cuando necesito meditar en silencio durante un minuto más o menos.

No puedo dejar de mencionar que VS2005, VS2008, y XCode todos parecen dar retroalimentación intelisense prácticamente instantánea (aunque nunca he probado en un proyecto tan grande).

Como alternativa, He ofrecido esta sugerencia .

¿Fue útil?

Solución

Asegúrese de incluir explícitamente todas las unidades (*) utilizados por el proyecto en el DPR.
No confíe en la ruta de búsqueda para encontrar una unidad llamada desde otra unidad, agregarlo a la DPR. El DPR será mucho más tiempo, pero todas las cosas relacionadas con la compilación será más rápido, incluyendo el código-visión.

(*) no las unidades de los componentes instalados.

Otros consejos

Delphi Code Insight invoca el compilador de DLL para hacer una compilación personalizada cuando el usuario solicita Code Insight (Ctrl + Espacio, '', etc). Esta compilación de encargo hace una acumulación en la unidad y salta sobre codegen, la vinculación, etc, hasta que llegue a su desplazamiento en el búfer de archivo actual. Con esto en mente, la lista de unidades que el compilador ve antes de que llegue a su posición actual va a jugar un factor importante en la determinación de la velocidad de la operación Código Insight. Es posible que haya una unidad (o unidades múltiples) que están causando una dependencia del sistema de archivos fuerte, etc. Es muy posible que la reordenación de la cláusula de usos, refactorización la cláusula de usos para estar en varios archivos, o la eliminación de unidades en la cláusula usos que aren' t necesario para su unidad actual para compilar puede mejorar el rendimiento. Además, el uso de paquetes o acortar su ruta de búsqueda de unidad puede mejorar el tiempo de respuesta de CI.

No sé cuál es la versión que está utilizando, pero mucho más rápido finalización de código es una de las cosas que más me gustan de Delphi 2009.

Este es un problema de larga data con Delphi, y he tenido que recurrir a apagar la terminación automática. Después de trabajar de esa manera por un tiempo, yo estaba muy contento con él. Incluso si sólo se necesita una fracción de segundo, teniendo el IDE lag mi escritura era desconcertante e interrumpió mi flujo. Mucho mejor con los automáticos fuera, la OMI.

Me encontré con este problema a mí mismo, me fijo mediante la eliminación de un enlace de red muertos de mi ruta de la biblioteca medio ambiente. Solucionado mi problema 100%.

¿Incluyen los directorios de fuentes para sus equipos de componentes personalizados para estar en la ruta de la biblioteca? Sería interesante ver si la diferencia de velocidad sólo los archivos DCU componentes están en la ruta de la biblioteca, en lugar de tener los archivos de origen allí también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top