AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Code-Vervollständigung sehr langsam (D7)
Thema durchsuchen
Ansicht
Themen-Optionen

Code-Vervollständigung sehr langsam (D7)

Ein Thema von MatthiasR · begonnen am 2. Feb 2010 · letzter Beitrag vom 13. Jul 2013
Antwort Antwort
Seite 1 von 3  1 23      
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#1

Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 11:50
Ich benutze Delphi 7 und habe das Problem, dass IDE-Features wie die Code-Vervollständigung oder die Anzeige der Code-Parameter bei Methodenaufrufen unheimlich langsam reagieren. Das ganze ist aber nur in unserem Hauptprojekt (entsprechend groß) so dramatisch, nicht in kleineren Projekten. Und im Hauptprojekt auch nur in Units, die gewisse andere selbstgeschriebene Units verwenden. Erzeuge ich in unserem Hauptprojekt bspw. ein neues Formular und verwende darin keinerlei andere unserer eigenen Units, so ist die Code-Vervollständigung darin richtig flott. Es muss also an irgendeiner (oder mehrerer) eigenen Unit liegen, die den Aufbau der Code-Vervollständigung dermaßen verlangsamt.

Jetzt ist nur die Frage welche Unit(s) und warum gerade diese die IDE so dermaßen ausbremsen. An der bloßen Größe der Units kann es eigentlich nicht liegen, oder? Schließlich bindet Delphi ja beim Anlegen eines neuen Formulars eine ganze Reihe Delphi-interner Units ein, die allesamt ebenfalls sehr umfangreich sind:
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
Trotzdem ist und bleibt die Code-Vervollständigung pfeilschnell, obwohl sie in dieser Ausgangssituation bestimmt bereits tausende von Klassen, Methoden, Variablen und Konstanten zu "verwalten" hat. Kommen ein paar eigene Units hinzu, so verlangsamt sich das ganze jedoch um mehrere Sekunden (vorher ja nur Bruchteile einer Sekunde).

Was ich mir vorstellen könnte, ist, dass es in den eigenen Units irgendwelche unschönen Konstrukte gibt, die die IDE so dermaßen verlangsamen. Also bspw. irgendwelchen zirkulären Bezüge oder sonst etwas. Also dass Unit A die Unit B verwendet und umgekehrt. Kann das sein? Solche Stellen gibt es leider Gottes, ich könnte den Verursacher dafür auch steinigen

Habt ihr gerade bei Delphi 7 auch schon ähnliche Erfahrungen gemacht und wie konntet ihr sie lösen? Oder muss ich mich damit abfinden?

Danke für eure Hilfe!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 11:56
Hallo,

habe das gleiche Problem.
Ich habe das von automatisch auf manuell gestellt.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#3

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:00
zwei einfache Tipps/Tricks:
- schaltet ErrorInsign ab
- nutzt Hier im Forum suchenDelphiSpeedUp

Ersteres funktioniert eh nie richtig und bremst nur aus, bzw. sorgt durch falschanzeige von Fehlern für Verwirrungen.

Letzeres tauscht einige Funktionen in der IDE aus (die kompilierten Programme bleiben unberührt)
z.B. den Speichermanager (gegen FastMM) und viele langsame Stringfunktionen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#4

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:06
Zitat von hoika:
habe das gleiche Problem.
Ich habe das von automatisch auf manuell gestellt.
Wo macht man das und hat es was gebracht?

Zitat von himitsu:
- schaltet ErrorInsign ab
- nutzt Hier im Forum suchenDelphiSpeedUp
Wo macht man das in D7 bzw. gibt es das da schon (EDIT: Nein, erst ab D2005)?!? DelphiSpeedUp hatte ich vorhin mal installiert, brachte keine Besserung.

Ist es denn nicht verwunderlich, dass die Probleme nur auftauchen, wenn ich ein paar unserer eigenen Units verwendet und NICHT bei Unmengen Delphi-Units?!? Irgendwas muss doch dann bei unseren eigenen Units falsch laufen?!?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#5

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:20
Bei den DelphiUnits nutzt Delphi eigentlich nur die vorkompilierten DCUs ... zu den Sourcen gibt es nur eine Umleitung für's Debugging und Dergleichen.
Da muß Delphi also nicht viel parsen, um den Aufbau der Units zu kennen.

Hmmm, ganz ehrlich, ich weiß garnicht, dann dieses eingeführt wurde ... hab bei sowas abgestellt, ich dachte aber D7 hätte da auch schon was zu bieten ... nja, konnte aber grade auch nichts zum aktivieren derartiger Funktionen finden


Bei sowas wäre auch noch eine Idee zu versuchen über die Open Tools API sich an einigen Stellen einzuklinken (wenn swas denn geht) und einige Zeiten zu messen, um so vielleicht rauszubekommen, wo es denn "hängt"
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:24
Hallo,

das Problem kenne ich.

Es tritt immer dann auf, wenn ich ein großes Projekt öffne und dann erstmals auf die Codevervollständigung "warte".
Mir scheint, dass Delphi dann hergeht und erstmal alles an Quelltexten "durcharbeitet" um an die für die Codevervollständigung erforderlichen Informationen zu kommen.

Wenn ich Delphi richtig beobachtet habe, kompiliert es im Hintergrund alle eigenen Units (sprich: nicht die zu Delphi gehörenden) um die Informationen zur Codevervollständigung zu sammeln, es muss halt alle Quelltexte einmal parsen.
Danach bekommt es Änderungen "von allein" mit.

Bei mir hilft es, bevor ich das erste Mal die Codeversollständigung benutze, das Projekt zu compilieren. Dann kommt Delphi "zwangsweise" überall mal vorbei und kann die Informationen sammeln.

Danach geht's dann gewohnt schnell.
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#7

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:29
Zitat von nahpets:
Hallo,

das Problem kenne ich.

Es tritt immer dann auf, wenn ich ein großes Projekt öffne und dann erstmals auf die Codevervollständigung "warte".
Mir scheint, dass Delphi dann hergeht und erstmal alles an Quelltexten "durcharbeitet" um an die für die Codevervollständigung erforderlichen Informationen zu kommen.

Wenn ich Delphi richtig beobachtet habe, kompiliert es im Hintergrund alle eigenen Units (sprich: nicht die zu Delphi gehörenden) um die Informationen zur Codevervollständigung zu sammeln, es muss halt alle Quelltexte einmal parsen.
Danach bekommt es Änderungen "von allein" mit.

Bei mir hilft es, bevor ich das erste Mal die Codeversollständigung benutze, das Projekt zu compilieren. Dann kommt Delphi "zwangsweise" überall mal vorbei und kann die Informationen sammeln.

Danach geht's dann gewohnt schnell.
Dass Delphi beim ersten Aufruf der Code-Vervollständigung immer etwas länger braucht, ist mir auch schon aufgefallen. Jedoch wäre das alleine ja überhaupt kein Problem. Danach funktioniert es ja in der Regel viel schneller. Nur bei meiner Konstellation nicht. Da kommt es mir so vor, als ob die IDE die benötigten Infos jedes mal aufs Neue erzeugen muss, sodass es immer gleich lange dauert (mehrere Sekunden).

Trotzdem probiere ich deinen Tipp jetzt mal aus, zu aller erst mal das Projekt komplett zu Compilieren. Aber große Hoffnungen habe ich nicht...
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:36
Hallo,

mehrere Sekunden geht doch, da hab' ich auch schon mal 'ne Minute und länger gewartet (okay, war jetzt nicht unbedingt ein schneller Rechner).
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#9

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:41
Zitat von nahpets:
mehrere Sekunden geht doch, da hab' ich auch schon mal 'ne Minute und länger gewartet (okay, war jetzt nicht unbedingt ein schneller Rechner).
Ist nur so, dass ich das Feature alle paar Sekunden verwende beim Programmieren, um mir Schreibarbeit und potenzielle Verschreiber zu ersparen. Und dann summieren sich die paar Sekunden schnell.

Das Vorcompilieren scheint übrigens in der Tat ein bisschen was gebracht zu haben. Die Verzögerungen sind nicht mehr ganz so extrem. Aber für meine Begriffe immernoch zu lang. V.a. auf einem hochmodernen Entwicklungsrechner (Core2Quad mit 2,66 GHz und 4 GB RAM). Ich bin mal gespannt, ob das nun so bleibt, oder ob sich die Verzögerungen im Laufe der Zeit wieder in die Höhe schrauben.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Code-Vervollständigung sehr langsam (D7)

  Alt 2. Feb 2010, 12:54
Hallo,
Zitat von MatthiasR:
Zitat von nahpets:
mehrere Sekunden geht doch, da hab' ich auch schon mal 'ne Minute und länger gewartet (okay, war jetzt nicht unbedingt ein schneller Rechner).
Ist nur so, dass ich das Feature alle paar Sekunden verwende beim Programmieren, um mir Schreibarbeit und potenzielle Verschreiber zu ersparen. Und dann summieren sich die paar Sekunden schnell.

Das Vorcompilieren scheint übrigens in der Tat ein bisschen was gebracht zu haben. Die Verzögerungen sind nicht mehr ganz so extrem. Aber für meine Begriffe immernoch zu lang. V.a. auf einem hochmodernen Entwicklungsrechner (Core2Quad mit 2,66 GHz und 4 GB RAM). Ich bin mal gespannt, ob das nun so bleibt, oder ob sich die Verzögerungen im Laufe der Zeit wieder in die Höhe schrauben.
Das mit dem Ersparen der Schreibarbeit habe ich mir abgewöhnt, da immer zu warten ist nervig, da schreib' ich lieber schneller, als Delphi vervollständigt und beim Kompilieren findet es die Verschreiber zuverlässig. Okay, wenn ich mal wieder nicht weiß, welche Parameter eine Funktion oder Prozedure in welcher Reihenfolge benötigt, dann warte ich auch mal. Oder bis man alle Attribute einer Klasse angezeigt bekommt, kann schon mal dauern, geht dann aber bei der gleichen Klasse zukünftig auch recht zügig.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz