Autor Beitrag
Mansi
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 14.03.03 12:41 
Hallo,

vielleicht kann mit einer helfen.
Ich habe ein ziemlich großes Projekt, dass ich von Delphi 2 nach Delphi 6 portieren soll. Außer den typischen Portierungsproblemen habe ich noch folgenden unerwünschten Effekt: Je mehr der PAS-Dateien kompiliert werden um so langsamer wird die Kompilierung, so dass ich für das ganze Projekte mehrere Stunden (bis zu 14) benötige. Unter Delphi 2.0 dauert das Ganze nur einige Sekunden. Ebenfalls hängt sich Delphi manchmal mehrere Minuten weg, wenn ich im Quellcode scrolle, was ein vernünftiges Arbeiten völlig unmöglich macht. Ich vermute, dass die Probleme zusammenhängen. (Delphi 5 verhält sich übrigens genauso)
Für Tipps und Anregungen wäre ich dankbar

:?
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 14.03.03 13:22 
Hallo,

also das mit der Compilierung ist ganz normal. sämtliche Quelltexte müssen wieder zu DCU Dateien Compiliert werden, da diese Versionsabhängig sind, die dcus von Delphi 2 können also nciht weiter verwendet werden. Sobald das einmal geschehen ist, werden nurnoch die Kompiliert, an denen du etwas geändert hast und es ist wieder so schnell wie unter Delphi 2.
Ich bin sicher wenn du unter D2 Projekt erzeugen wählst dauert es ewig lange.
Du wirst also nicht dumrumkommen, den Compiler einen Tag durcharbeiten zu lassen und dabei hoffen, das es keine "Fehler/kompatibilitätsprobleme" im Quelltext gibt.

Die Probleme beim Scrollen des Quelltextes kann ich aber nicht erklären.

Gruß
Klabautermann
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Fr 14.03.03 14:11 
Also ich verstehe das Problem nicht. Ich weiß, daß man vielleicht einige Unitnamen ändern muß (z.B. ist OLEAuto ab D3 ComObj), aber mehr Problemme hatte ich nie. Dann hatte ich einige Projekt in D1 die ohne Probleme kompiliert wurde und bei denen es ab D2 dann Probleme gab. Anscheinend ging D1 mit einigen Fehlern tolleranter um. Aber mehr Probleme hatte ich nie. Schon garnicht, daß es Stunden gedauert hat.

Das ab D4 einiges anders gespeichert wurde ist klar, aber das macht das Schwein auch nicht fett.

_________________
Popov
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 14.03.03 15:25 
Das mit den Stunden erklähre ich mir damit, das es sich wirklich um ein riesiges Projekt handelt und beim ersten mal übersetzen muss dieses ja komplett kompiliert werden, was im Täglichen gebrauch ja nicht der Fall ist.
Compilietrzeiten von ein paar Minuten bei großen Projekten habe ich auch schon erlebt. Vieleicht wird das ganze ncoh durch eine Maschiene mit wenig Arbeitsspeicher und einer besonders langsammen Festplatte verschlimmert. Ich denke mal, das D6 nicht so füssig auf einem Rechner läuft wie D2, da D6 eben mehr bietet und daher auch mehr Resourcen fordert.
Bei so langer Kompilierzeit muss das ganze aber dennoch ein Monsterprojekt sein, welcher sinvollerweise in mehrere kleinere Gesplittet werden sollte (Modultechnik) aber das hilft zum gegenwärtigen Zeitpunkt nicht weiter.

Gruß
Klabautermann
Mansi Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 14.03.03 16:22 
Danke für die Antworten.

Ich habe mal das Projekt komplett neue erstellt und sicherheitshalber alle DCU's gelöscht. Kompilierdauer mit Delphi 2.0 17 Sekunden.

Mein Rechner arbeitet mit 1.2 Ghz und 512 MB RAM

Insgesamt werden ca. 400 DCU's erstellt , die ersten 100 laufen innerhalb weniger Sekunden durch. Dann wird es von mal zu mal langsamer. Ich habe auch keinerlei Gemeinsamkeiten im Sourceode feststellen können, die das Problem verursachen. Mal spuckt er 3 DCU's an einem Stück aus, dann heißt es wieder warten, warten warten.
Ich hatte dann mal eine pas- Datei deren DCU-Erzeugung ca. 3 Minuten dauerte, gelöscht. Delphi benötigte trotzdem ca. 3 Minuten nach Erzeugung der letzten DCU bis es das Fehlen der PAS-Datei bemerkte.
Da frage ich mich was der Compiler in der Zwischenzeit gemacht hat?
Das Projekt arbeitet übrigens mit RES-Dateien nicht mit DFM's. Könnte es daran liegen?

Grüße