AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Ide instabil mit hohem Speicherverbrauch
Thema durchsuchen
Ansicht
Themen-Optionen

Ide instabil mit hohem Speicherverbrauch

Ein Thema von NicoM · begonnen am 18. Mai 2018 · letzter Beitrag vom 24. Mai 2018
Antwort Antwort
Seite 2 von 2     12   
NicoM

Registriert seit: 18. Mai 2018
4 Beiträge
 
#11

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 23. Mai 2018, 08:03
Vielen Dank nachmal für die Antworten.

Das mit den Uses im Implementationteil, wie oben erwähnt, ist bei uns auch verboten. Aber es gibt noch alten Code bei dem die Uses im Implementationteil stehen, vor allem scheinbar um zirkulare Referenzen zu ermöglichen. Es gibt die Bestrebung diese Stellen alle umzubauen. Kann es sein, dass solche zirkularen Referenzen dazu beitragen, dass der Speicherverbrauch der Ide beim Build stark ansteigt und nicht wieder freigegeben wird? Hat da jemand fundierte Erfahrung? Das würde uns bei der Priorisierung der Aufgabe zur Beseitigung von zirkularen Referenzen helfen.
  Mit Zitat antworten Zitat
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#12

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 23. Mai 2018, 08:58
Denn in Implementation sind die Unit-Initialisierungen "zufällig", waren im Interface diese Units immer vor deiner Unit initialisiert werden.
Könntest du das genauer erläutern?
Ich verstehe das gerade so das Unit A im initialization Block etwas macht worauf Unit B im ihren initialization Block angewiesen ist.
Wenn Unit B jetzt Unit A im implementation Bereich einbindet, dann kann es sein das Unit B ins leere läuft?


@Topic, reden wir hier gerade übers Compilieren (nie Probleme damit gehabt) oder das Builden (macht der Jenkins) ?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 23. Mai 2018, 09:10
Vielleicht hilft es ungenutzte Packages abzuwählen?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#14

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 23. Mai 2018, 09:27
Kann es sein, dass solche zirkularen Referenzen dazu beitragen, dass der Speicherverbrauch der Ide beim Build stark ansteigt und nicht wieder freigegeben wird? Hat da jemand fundierte Erfahrung?
Nach meiner (fundierten?) Erfahrung machen zirkuläre Unit-Referenzen sehr wohl Probleme und sind eine der Ursachen für z.B. IDE-Instabilitäten und den Ausfall von Code Insight. Es kommt auch vor, daß man zwingend ein Build machen muss, weil ein simples Compile entweder fehlschlägt oder zu merkwürdigem Programmverhalten führt (häufig beim Debuggen).

Zirkuläre Referenzen sind mittlerweile das Erste, was ich bei einem bestehendem Projekt eliminiere, wenn ich es übernehme. Im Ergebnis hat man dann eine stabile und funktionsfähige IDE (OK, Bugs gibt's immer). Compilieren geht zumindest gefühlt auch schneller.

Ach ja, ich kenne da ein hilfreiches Tool: Unit Dependency Analyzer
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 23. Mai 2018, 09:33
Wenn es nicht unbedingt die IDE sein muss kann ich auch das hier empfehlen, sehr cooler IDE Ersatz um schnell mal Dinge zu erledigen, auch Compilieren etc. Pascal Project Manager & Editor 2.03
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 24. Mai 2018, 15:31
Wir haben hier ein ähnliches Problem:
  • 1-2 Mio Zeilen code, aber durch den Einsatz von Generics (in vielen typisierten Objektlisten) DCUs, die ca. 17 MB groß sind und nur Code enthalten
Ich habe ja seit langem schon in Verdacht, dass Generics (genauer einige Defekte in Implementierung/Design im Compiler) zu diesem Problem beitragen.
Siehe: https://quality.embarcadero.com/browse/RSP-18080

Kann es sein, dass solche zirkularen Referenzen dazu beitragen, dass der Speicherverbrauch der Ide beim Build stark ansteigt und nicht wieder freigegeben wird? Hat da jemand fundierte Erfahrung?
Nach meiner (fundierten?) Erfahrung machen zirkuläre Unit-Referenzen sehr wohl Probleme und sind eine der Ursachen für z.B. IDE-Instabilitäten und den Ausfall von Code Insight. Es kommt auch vor, daß man zwingend ein Build machen muss, weil ein simples Compile entweder fehlschlägt oder zu merkwürdigem Programmverhalten führt (häufig beim Debuggen).

Zirkuläre Referenzen sind mittlerweile das Erste, was ich bei einem bestehendem Projekt eliminiere, wenn ich es übernehme. Im Ergebnis hat man dann eine stabile und funktionsfähige IDE (OK, Bugs gibt's immer). Compilieren geht zumindest gefühlt auch schneller.

Ach ja, ich kenne da ein hilfreiches Tool: Unit Dependency Analyzer
Das ist aber auch nur Symptombekämpfung und aufgrund von fehlenden Sprachfeatures (z.B. partial Classes, Sichtbarkeit "internal", Extension Methods) oft leider die einzige Möglichkeit, bestimmte Architekturen zu realisieren. Wenn man nicht in der Lage ist, syntaktisch korrekten Code zu schreiben, weil die IDE es nicht gerafft bekommt, ist das für mich Kategorie unterirdisch und disqualifiziert diese Sprache/IDE, rosarote Brille oder Delphi Fan der ersten Stunde hin oder her.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (24. Mai 2018 um 15:37 Uhr)
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
555 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 24. Mai 2018, 16:12
Nimm VMMAP (von Sysinternals) selektiere die BDS und mache Tools Empty Working Set.

Ich könnte mir vorstellen dass Filesystem Puffer das Problem verursachen.

Gehe nicht in RamMAP und mache schon gar nicht Empty Modified Page List. Dann ist zwar zusammengeräumt aber viel geht nicht mehr. Dort hat Empty StandBy List zumindest mal kurzfristig geholfen. Dann waren alle Einträge ins Project Directory weg und nach dem nächsten Build wieder da.

Ich weiß nicht ob das hilft. Aber bei mir stellt es die BDS zumindest wieder zurück auf den Speicherverbrauch nach Start zumindest lt. Anzeige im Taskmanager.

Lt. VMMAP verbraucht Delphi 880MB nach Start bei mir und hat aber bis 4GB frei.

Ob das viel bringt ist ein anderes Thema. Aber möglw. hilft es vorübergehend.

Am Ende wird vermutlich die Verlagerung auf einen Build Server mehr bringen.

--- Zum Code ---
Ich habe keine großen Programme. Ich bin besser damit gefahren, wohl zyklische Abhängigkeiten vermeidend, units dann einzubinden wenn ich sie brauche auch in der Implementation und diese habe keine Initialization und Finalization Section.

--- 10.2 Tokyo --
Obwohl ich keine Delphi Speedup habe und selbst wenn ich alles aufdrehe läuft das durchwegs stabil.

Allein habe ich allein die beiden Punkte bezüglich Tooltips bei den Code Insight Einstellungen aktiv und sonst nichts. Für den Rest verwende ich eine Mini Version von CnPack.



mit freundliche Grüßen
Nico M.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:26 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