Question

J'ai quelques grandes lignes de (~ 600k de code) Projets Delphi. Ils comprennent des composants personnalisés que notre équipe a mis au point.

Souvent, quand j'appelle la complétion de code avec ctrl + espace ou tout simplement en appuyant sur « », les serrures IDE vers le haut et pense vraiment dur depuis longtemps. Parfois, le retard peut être une minute ou plus. D'autres fois, il apparaît immédiatement avec des suggestions.

Quels sont les facteurs qui influencent la performance de IntelliSense dans Delphi? Est-il possible que je peux améliorer cette performance?

Ma meilleure solution à ce jour est de désactiver l'exécution automatique et utiliser Ctrl + espace quand je dois méditer tranquillement pendant une minute.

Je ne peux que mentionner que VS2005, VS2008, et XCode tous semblent donner des commentaires IntelliSense quasi instantanée (même si je ne l'ai jamais essayé sur un projet de cette grande).

Comme alternative, J'ai offert cette suggestion .

Était-ce utile?

La solution

Assurez-vous d'inclure explicitement toutes les unités (*) utilisées par votre projet dans le DPR.
Ne comptez pas sur le chemin de recherche pour trouver une unité appelée d'une autre unité, l'ajouter à la DPR. Le DPR sera beaucoup plus longue, mais toutes les choses liées à la compilation sera plus rapide, y compris le code-insight.

(*) et non les unités des composants installés.

Autres conseils

Delphi Code Perspicacité appelle la dll du compilateur pour faire une compilation personnalisée lorsque l'utilisateur demande le code Perspicacité (Ctrl + Espace, « », etc.). Cette compilation personnalisée fait une construction dans l'unité et saute codegen, relier, etc jusqu'à ce qu'il atteigne votre courant de décalage dans la mémoire tampon de fichier. Avec cela à l'esprit, la liste des unités que le compilateur voit avant qu'il arrive à votre position actuelle va jouer un facteur important pour déterminer la vitesse du code opération Insight. Il peut y avoir une unité (ou unités multiples) qui sont à l'origine d'une dépendance du système de fichiers lourd, etc. Il est tout à fait possible que réorganisant la clause uses, refactoring la clause uses être dans plusieurs fichiers, ou la suppression des unités dans la clause uses qui aren » t nécessaire pour votre unité actuelle de compiler peut améliorer les performances. De plus, en utilisant des paquets ou raccourcir votre chemin de recherche de l'unité peut améliorer le temps de réponse CI.

Je ne sais pas quelle version que vous utilisez, mais la complétion de code beaucoup plus rapide est l'une des choses que je préfère le plus Delphi 2009.

Ceci est un problème de longue date avec Delphi, et je devais recourir à éteindre la fin automatique. Après avoir travaillé de cette façon pendant un certain temps, je suis très heureux avec elle. Même si elle ne prend qu'une fraction de seconde, ayant le décalage IDE ma frappe était déconcertant et interrompu mon flux. Beaucoup plus agréable avec les automatics au large, l'OMI.

Je viens moi-même à travers ce problème, je l'ai corrigé en supprimant un lien réseau mort de mon chemin de la bibliothèque de l'environnement. Résolu mon problème 100%.

Avez-vous d'inclure les répertoires sources pour vos équipes de composants personnalisés pour être dans le chemin de la bibliothèque? Il serait intéressant de voir la différence de vitesse si seuls les fichiers DCU composants sont dans le chemin de la bibliothèque, au lieu d'avoir les fichiers source là aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top