Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

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

AW: Ide instabil mit hohem Speicherverbrauch

  Alt 24. Mai 2018, 14: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 14:37 Uhr)
  Mit Zitat antworten Zitat