Pergunta

Eu tenho algumas grandes (~ linhas de 600k de código) projetos Delphi. Eles incluem alguns componentes personalizados que nossa equipe tem desenvolvido.

Muitas vezes, quando eu chamar a conclusão de código com ctrl + espaço ou apenas pressionando "", o IDE trava e pensa realmente difícil para um longo tempo. Às vezes, o atraso pode ser um minuto ou mais. Outras vezes, ele aparece imediatamente com sugestões.

Que fatores influenciam o desempenho de intellisense em Delphi? Existe alguma maneira eu posso melhorar este desempenho?

Meu melhor solução até agora é desligar a conclusão automática e uso ctrl + espaço quando eu preciso para meditar em silêncio por um minuto ou assim.

Eu não posso deixar de mencionar que VS2005, VS2008, e XCode todos parecem dar feedback intellisense virtualmente instantânea (embora eu nunca tentou isso em um projeto desta grande).

Como alternativa, Eu ofereci esta sugestão .

Foi útil?

Solução

Certifique-se de incluir explicitamente todas as unidades (*) usado pelo seu projeto no dpr.
Não confie no caminho de pesquisa para encontrar uma unidade chamada de outra unidade, adicioná-lo ao DPR. O DPR será muito mais tempo, mas todas as coisas relacionadas compilação será mais rápido, incluindo o código-insight.

(*) não as unidades dos componentes instalados.

Outras dicas

Delphi Código introspecção invoca a dll compilador para fazer uma compilação personalizada quando o usuário solicita Código introspecção (Ctrl + Espaço, '', etc). Esta compilação personalizado faz uma compilação na unidade e pula codegen, ligando, etc até que ele atinja o seu deslocamento no buffer de arquivo atual. Com isto em mente, a lista de unidade que o compilador vê antes que ele chegue à sua posição actual irá desempenhar um grande fator na determinação da velocidade da operação Código Insight. Pode haver uma unidade (ou unidades múltiplas) que estão causando uma dependência do sistema de arquivos robusto, etc. É bem possível que a reordenação da cláusula de usos, refatoração a cláusula de usos para a vários arquivos, ou unidades na cláusula de usos que aren remover' t necessário para a sua unidade atual para compilação pode melhorar o desempenho. Além disso, o uso de pacotes ou encurtando o seu caminho de pesquisa unidade pode melhorar o tempo de resposta de CI.

Eu não sei qual versão você está usando, mas muito mais rápido conclusão de código é uma das coisas que eu gosto mais sobre Delphi 2009.

Este é um problema de longa data com Delphi, e eu tive que recorrer a desligar a conclusão automática. Depois de trabalhar dessa forma por um tempo, eu estava muito feliz com isso. Mesmo que ele só tem uma fração de segundo, tendo o IDE lag minha digitação foi desconcertante e interrompeu o meu fluxo. Muito mais agradável com as armas de fogo automáticas off, IMO.

Eu deparei com este problema sozinho, eu fixa-lo através da remoção de um link de rede mortos do meu caminho da biblioteca ambiente. Resolveu o meu problema de 100%.

Você inclui as fontes diretórios para os componentes personalizados equipes de estar no caminho da biblioteca? Seria interessante ver a diferença de velocidade se apenas os arquivos DCU componentes estão no caminho da biblioteca, em vez de ter os arquivos de origem lá também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top