Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Projekt erzeugen immer langsamer (https://www.delphipraxis.net/190848-projekt-erzeugen-immer-langsamer.html)

OlliWW 14. Nov 2016 09:41

Projekt erzeugen immer langsamer
 
Hallo Zusammen,

Ich habe festgestellt, dass das Erzeugen meines Projekts (SHIFT + F9) von mal zu mal langsamer wird. Ich kann mir nicht erklären woran das liegt.
Ich habe mal eine kleine Studie dazu gemacht, bei meinem Projekt ca. 1,7 Mio Zeilen habe ich mehrmals hintereinander SHIFT + F9 zum erzeugen des Projektes gedrückt.
Dabei kann man feststellen, dass es immer langsamer wird und sich dann bei ca. 2 minuten pro Vorgang einpendelt. Zwischendurch habe ich mal STRG + F9 gedrückt (Kompilieren), was jeweils für den nächsten Erzeugen-Vorgang eine deutliche Verbesserung mit sich gebracht hat. Danach wurde es aber wieder langsamer. Ebenso hat auch das manuelle löschen von DCUs nichts gebracht, hier mal der Log meiner Auswertungen:

Erzeugen 1: 0:42 min
Erzeugen 2: 0:48 min
Erzeugen3: 1:43 min
Erzeugen 4: 2:00 min
Erzeugen 5: 1:50 min
Erzeugen 6: 2:07 min
Erzeugen 7: 2:15 min

Compilieren: 0:33 min

Erzeugen 8: 0:58 min
Erzeugen 9: 2:07 min

Compilieren: 0:36 min

Erzeugen 10: 0:55 min
Erzeugen 11: 1:46 min

DCU löschen

Erzeugen 12: 2:03 min


Kann sich jemand erklären, woran das liegen könnte?
Wenn ich die IDE neustarte, ist der nächste Erzeugen-Vorgang natürlich wieder "schnell".

Bambini 14. Nov 2016 10:27

AW: Projekt erzeugen immer langsamer
 
Welche Delphi Version nutzt du?

OlliWW 14. Nov 2016 10:37

AW: Projekt erzeugen immer langsamer
 
Delphi Berlin 10.1 Upd. 1

bra 14. Nov 2016 10:58

AW: Projekt erzeugen immer langsamer
 
Das wird wohl einfach das bekannte Problem sein, dass die IDE nach und nach den Speicher vollfrisst. Unter älteren Versionen kamen dann irgendwann halt Abstürze und OutOfMemorys.

OlliWW 14. Nov 2016 10:59

AW: Projekt erzeugen immer langsamer
 
Hmm..naja man kann ja erkennen, dass ein Kompilieren die Zeit für den nächsten Vorgang wieder verbessert. An ein Memory Leak oder ähnliches dachte ich auch.

Bambini 14. Nov 2016 11:40

AW: Projekt erzeugen immer langsamer
 
Gerade mal geschaut, ob das bei mir auch so ist: Ja.
Bei meinem Projekt mit 3.2 Mio Zeilen Code, steigt die Zeit von anfangs 25sec -> 56sec und bleibt dann in dem Bereich.
Der Speicher liegt beim Start von Delphi mit dem gerade geöffneten Projekt beim ca. 400 MB.
Nach dem ersten (schnellen) Erstellen geht dieser auf gute 1.1 GB und bleibt dann dort.
Vermute mal auch, dass das mit dem alten OOM Problem zu tun hat. Die Bufferung und der Zugriff darauf, scheint wohl noch Optimierungspotential zu haben.

Bambini 14. Nov 2016 11:59

AW: Projekt erzeugen immer langsamer
 
Den .NET Speicherverbrauch kann man ja recht schön mit dem Sysinternal Process Explorer sehen.
Der bleibt nach dem öffnen des Projektes in der IDE und dem ersten Compilerlauf bei so ca. 238 MB.
Schon beim Start des 2. Laufs macht er sofort einen Sprung auf 428 MB.
Die IDE hat aber zu dem Zeitpunkt bereits ihr Kampfgröße von 1.1GB erreicht. Kann daher nicht alleine aus dem .NET Bereich kommen.

PS: Die IDE verwendet immer noch die 2.0.50727 .NET Runtime

Aviator 14. Nov 2016 12:14

AW: Projekt erzeugen immer langsamer
 
Also beim Erzeugen merke ich zwar keinen Unterschied, aber meine Projekte sind bei weitem nicht so groß.

Wie schafft man es, 1.7 bzw. 3.2 Mio. Zeilen SourceCode zu schreiben. :shock:

Was ich nur immer wieder merke ist, dass nach mehreren Debug Vorgängen die IDE immer langsamer wird. Für Seattle gab es da wohl auch einen Hotfix der etwas mit dem ModernUI zu tun hatte. Aber ich denke, dass das hier wohl keine Rolle spielt. Wäre natürlich schön, wenn es das gleiche Problem ist und es sich in einem Rutsch lösen lassen würde. :roll:

Nur wird die IDE in unterschiedlichen Punkten von Zeit zu Zeit immer langsamer. Beim Debuggen äußert es sich so, dass das Umbauen vom Standard-Design auf das Debug-Layout und umgekehrt ewig dauert.

OlliWW 14. Nov 2016 12:17

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von Aviator (Beitrag 1353557)
Wie schafft man es, 1.7 bzw. 3.2 Mio. Zeilen SourceCode zu schreiben. :shock:

Im professionellen Umfeld ist das keine Seltenheit. Bei den Delphi Tagen etc. merkt man immer wieder dass man nicht alleine ist mit solchen Projekten :)

Aber wenn alleine hier so viele Leute dies merken, warum dann Embarcadero nicht? Es ist immer wieder schön in kleinen Hello-World Projekten eine schnelle, funktionierende IDE zu sehen, aber dies muss doch auch bei größeren Projekten funktionieren. Ebenso wie der Speicherverbrauch und auch die Kompilier-Zeit haben wir massive Probleme mit der Intelli-Sense.

Aviator 14. Nov 2016 12:20

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von OlliWW (Beitrag 1353558)
Zitat:

Zitat von Aviator (Beitrag 1353557)
Wie schafft man es, 1.7 bzw. 3.2 Mio. Zeilen SourceCode zu schreiben. :shock:

Im professionellen Umfeld ist das keine Seltenheit.

Naja. Ich programmiere "nur" Software für unsere eigene Firma um uns das Leben zu erleichtern. Das größte Projekt das ich geschrieben habe und immer noch pflege hat so um die 30.000 LOC. Aber ich bin schon ruhig, da das hier nicht hingehört. Vielleicht mache ich mal einen eigenen Thread hierfür auf. :thumb:

bra 14. Nov 2016 12:29

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von OlliWW (Beitrag 1353558)
Aber wenn alleine hier so viele Leute dies merken, warum dann Embarcadero nicht? Es ist immer wieder schön in kleinen Hello-World Projekten eine schnelle, funktionierende IDE zu sehen, aber dies muss doch auch bei größeren Projekten funktionieren. Ebenso wie der Speicherverbrauch und auch die Kompilier-Zeit haben wir massive Probleme mit der Intelli-Sense.

Die wissen schon um das Problem, bekommen es aber nicht in den Griff. Bei Seattle war ja auch die große Neuerung, dass die IDE mehr Speicher nutzen kann. Das behebt zwar nicht das eigentliche Speicherproblem, man kann aber länger mit der IDE arbeiten, bevor sie abkackt :stupid:

Bambini 14. Nov 2016 13:25

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von bra (Beitrag 1353563)
Zitat:

Zitat von OlliWW (Beitrag 1353558)
Aber wenn alleine hier so viele Leute dies merken, warum dann Embarcadero nicht? Es ist immer wieder schön in kleinen Hello-World Projekten eine schnelle, funktionierende IDE zu sehen, aber dies muss doch auch bei größeren Projekten funktionieren. Ebenso wie der Speicherverbrauch und auch die Kompilier-Zeit haben wir massive Probleme mit der Intelli-Sense.

Die wissen schon um das Problem, bekommen es aber nicht in den Griff. Bei Seattle war ja auch die große Neuerung, dass die IDE mehr Speicher nutzen kann. Das behebt zwar nicht das eigentliche Speicherproblem, man kann aber länger mit der IDE arbeiten, bevor sie abkackt :stupid:

Mit den 30 sec. Verzögerung kann ich bei einem kompletten Rebuild noch sehr gut leben. Äußerst störend ist jedoch der fehlende Code-Inside und "Deklaration suchen", in vielen Units. Das ist m. E. in Berlin im Vergleich zu XE7 deutlich schlechter geworden. Hier wäre dringend Handlungsbedarf, da es schon einmal viel besser lief.

OlliWW 14. Nov 2016 13:34

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von Bambini (Beitrag 1353571)
Mit den 30 sec. Verzögerung kann ich bei einem kompletten Rebuild noch sehr gut leben

Ich auch, aber beim nächsten / übernächsten Rebuild bin ich ja dann bei 2 min.

Bambini 14. Nov 2016 13:46

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von OlliWW (Beitrag 1353579)
Zitat:

Zitat von Bambini (Beitrag 1353571)
Mit den 30 sec. Verzögerung kann ich bei einem kompletten Rebuild noch sehr gut leben

Ich auch, aber beim nächsten / übernächsten Rebuild bin ich ja dann bei 2 min.

... dieses Problem kann man mit Hardware erschlagen :wink:

OlliWW 14. Nov 2016 13:48

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von Bambini (Beitrag 1353582)
... dieses Problem kann man mit Hardware erschlagen :wink:

SSDs im Hardware Raid 10, Intel i7 mit 16 GB Ram,....wo ist der Flaschenhals? ;)

bra 14. Nov 2016 14:08

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von OlliWW (Beitrag 1353583)
Zitat:

Zitat von Bambini (Beitrag 1353582)
... dieses Problem kann man mit Hardware erschlagen :wink:

SSDs im Hardware Raid 10, Intel i7 mit 16 GB Ram,....wo ist der Flaschenhals? ;)

Eindeutig der RAM, Delphi läuft mit 128 GB vieeel besser :stupid:

Bambini 14. Nov 2016 14:10

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von OlliWW (Beitrag 1353583)
Zitat:

Zitat von Bambini (Beitrag 1353582)
... dieses Problem kann man mit Hardware erschlagen :wink:

SSDs im Hardware Raid 10, Intel i7 mit 16 GB Ram,....wo ist der Flaschenhals? ;)

Warum dauern bei dir dann 1.7 Mio Zeilen schon beim ersten Lauf 50 sec. Ich komme mit 3.2 Mio auf 26 sec :gruebel:
Sind bei dir noch Build-Ereignisse definiert?

Ritsch 14. Nov 2016 14:20

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von OlliWW (Beitrag 1353558)
[...]Ebenso wie der Speicherverbrauch und auch die Kompilier-Zeit haben wir massive Probleme mit der Intelli-Sense.

Das Problem begleitet uns schon ewig. Habe es jetzt so eingestellt das die Intelli-Sense nur bei Bedarf angezeigt / geladen wird. Das hängt zwar auch manchmal, aber bei weiten nicht so oft wie vorher.

Delphi-Laie 14. Nov 2016 14:26

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von OlliWW (Beitrag 1353558)
Zitat:

Zitat von Aviator (Beitrag 1353557)
Wie schafft man es, 1.7 bzw. 3.2 Mio. Zeilen SourceCode zu schreiben. :shock:

Im professionellen Umfeld ist das keine Seltenheit. Bei den Delphi Tagen etc. merkt man immer wieder dass man nicht alleine ist mit solchen Projekten :)

Aber wenn alleine hier so viele Leute dies merken, warum dann Embarcadero nicht? Es ist immer wieder schön in kleinen Hello-World Projekten eine schnelle, funktionierende IDE zu sehen, aber dies muss doch auch bei größeren Projekten funktionieren.

Die Ursache ist, daß Embarcadero diese "größeren Projekte" in dieser Form nicht hat.

Neue Funktionen werden einzeln und isoliert entwickelt und dann für sich allein geprüft. Funktionieren sie (was für ein Pleonasmus), ist alles gut, und die Teilaufgabe wird als erfüllt angesehen und beendet.

Ich konnte das gleiche Phänomen bei einer CAD-Software beobachten. Wenn diese den rauhen Praxisalltag mit großen Projekten zu bewerkstelligen hatte - meine Güte, traten dort eine Unmenge Fehler zutage.

OlliWW 14. Nov 2016 15:12

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von Bambini (Beitrag 1353588)
Warum dauern bei dir dann 1.7 Mio Zeilen schon beim ersten Lauf 50 sec. Ich komme mit 3.2 Mio auf 26 sec :gruebel:
Sind bei dir noch Build-Ereignisse definiert?

Nein keine Pre und Postbuild Ereignisse. Bei uns dauert es länger, da unser Code nicht so sauber ist, was die uses angeht. Mit jedem Refactoring-Tag wird es besser :)

Stevie 14. Nov 2016 17:44

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von Aviator (Beitrag 1353559)
Zitat:

Zitat von OlliWW (Beitrag 1353558)
Zitat:

Zitat von Aviator (Beitrag 1353557)
Wie schafft man es, 1.7 bzw. 3.2 Mio. Zeilen SourceCode zu schreiben. :shock:

Im professionellen Umfeld ist das keine Seltenheit.

Naja. Ich programmiere "nur" Software für unsere eigene Firma um uns das Leben zu erleichtern. Das größte Projekt das ich geschrieben habe und immer noch pflege hat so um die 30.000 LOC. Aber ich bin schon ruhig, da das hier nicht hingehört. Vielleicht mache ich mal einen eigenen Thread hierfür auf. :thumb:

Ich möchte mal ganz dreist behaupten, dass man in solchen Projekten, die über Jahre an solche Zahlen gekommen sind, durch sinnvolle und nachhaltige Refactorings sicherlich einige zehn- bis hunderttausend Zeilen einsparen kann.

OlliWW 14. Nov 2016 19:10

AW: Projekt erzeugen immer langsamer
 
Zitat:

Zitat von Stevie (Beitrag 1353647)
Ich möchte mal ganz dreist behaupten, dass man in solchen Projekten, die über Jahre an solche Zahlen gekommen sind, durch sinnvolle und nachhaltige Refactorings sicherlich einige zehn- bis hunderttausend Zeilen einsparen kann.

Ja das ist korrekt. Unsere Software wird fortlaufend refactor't. Dadurch haben wir mehrere tausend Zeilen einsparen können und haben "nur" noch 1,7 Mio Zeilen Code :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 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