AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XE3-Compiler-Speicherleck

Ein Thema von himitsu · begonnen am 23. Okt 2012 · letzter Beitrag vom 26. Apr 2013
Antwort Antwort
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

AW: XE3-Compiler-Speicherleck

  Alt 26. Okt 2012, 17:32
also einfach nur den ganzen Cache leeren und auf Anfang zurücksetzen. (falls das einfacher ist)
Der Debugger und CodeInsight benötigen ja die Units. Wenn ich es hinbekomme, dass die Units den meisten Speicher teilen, dann dürfte es nicht mehr ganz so extrem Wachsen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: XE3-Compiler-Speicherleck

  Alt 26. Okt 2012, 18:20
Wenn Emba den meisten Cachespeicher in MMFs (mit 'ner Tempdatei verknüpft) legen würde, dann könnte selbst die 32 Bit IDE wesentlich mehr Speicher im RAM haben, als nur poplige 32 Bit.
(mit Datei kann man mehr Speicher verschwenden, und müllt die PageFile nicht voll)

Bei Speichermangel (für Windows) wird es in die Datei geschrieben und ansonsten würde die Windows das Wichtigste die meiste Zeit im RAM cachen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Okt 2012 um 18:30 Uhr)
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: XE3-Compiler-Speicherleck

  Alt 26. Okt 2012, 18:33
Das ist leider kein Cache im Sinne eines Caches. Die DCU Datei wird eingelesen und dann alle Referenzen, die in der DCU als Index liegen in Pointer umgewandelt. Danach wird während des Kompilierens/Linkes Änderungen an den geladenen Symbolen gemacht (insbesondere Flags). Es fehlt einfach die Trennung zwischen statischen Daten und Arbeitsdaten. Somit kann man nichts zusammen fassen und mit MMFs kann man sich auch nicht behelfen, da schon allein beim Laden der DCUs Änderungen notwendig sind (=> Referenzen auflösen).



Das mit dem generieren Code Zusammenfassen bringt nicht viel. Bei dem Demoprojekt kommen da gesamt gerade einmal 77 MB zusammen. Wenn da doppelte zusammengefasst werden wird es wahrscheinlich auf unter 20 MB fallen, aber das sind Peanuts im Vergleich zu den anderen 600 MB.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: XE3-Compiler-Speicherleck

  Alt 26. Okt 2012, 20:03
Das mit dem generieren Code Zusammenfassen bringt nicht viel.


Nja, zumindestens ist mir nun die IDE nicht mehr unter den Fingern wegverreckt. (werde jetzt ja gewarnt )
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: XE3-Compiler-Speicherleck

  Alt 26. Okt 2012, 20:12
Ich habe jetzt mal deine Idee mit dem "Aufräumen der Units" in den DCC Memory Analyzer eingebaut. Mit der CheckBox kannst du das "Feature" (de)aktivieren um einen Vergleich zu haben.

Wenn die Checkbox gesetzt ist, werden vor dem Kompilieren eines Projekts sämtlichen Units aller anderen Projekte (in allen Platformen) freigegeben.

Ich kann nicht garantieren, dass die IDE bzw. der Compiler sich dabei normal verhalten. Interessant wäre es, wie sich CodeInsight, ErrorInsight, HelpInsight, der Debugger und der Compiler sich verhalten. Funktioniert das Debuggen in ein "anderes (DLL/BPL) Projekt" noch, sieht man die Symbole, ...

Viel Spaß beim Testen.
Angehängte Dateien
Dateityp: zip DccMemAnalyzer2.zip (23,2 KB, 43x aufgerufen)
  Mit Zitat antworten Zitat
Kidi

Registriert seit: 14. Okt 2005
Ort: Niederkassel
54 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: XE3-Compiler-Speicherleck

  Alt 8. Nov 2012, 07:29
Hallo alle zusammen,
ich habe die Dll ins Delphi Bin Verzeichnis kopiert.
Nun startet Delphi nimmer, sondern verweist auf eine Interneseite von Embarcadero mit der Fehlermeldung "Product or License Validation Error".
Liegt der Fehler an der Dll oder muß diese in ein anderes Verzeichnis?

Grüße
Dietmar
  Mit Zitat antworten Zitat
USchuster

Registriert seit: 12. Sep 2010
Ort: L.E.
120 Beiträge
 
Delphi XE3 Professional
 
#7

AW: XE3-Compiler-Speicherleck

  Alt 8. Nov 2012, 07:55
Hallo alle zusammen,
ich habe die Dll ins Delphi Bin Verzeichnis kopiert.
Nun startet Delphi nimmer, sondern verweist auf eine Interneseite von Embarcadero mit der Fehlermeldung "Product or License Validation Error".
Liegt der Fehler an der Dll oder muß diese in ein anderes Verzeichnis?
Das ist ganz normal - also die DLL muss in ein anderes Verzeichnis. Das ist XE3 wo jede DLL in $(BDSBIN) signiert sein muss. Das man Dateien neu signieren kann hat EMBT wohl niemand gesagt.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.682 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: XE3-Compiler-Speicherleck

  Alt 13. Feb 2013, 23:08
Gibts da was neues oder ist das im aktuellen Update von XE3 behoben? Ich bekomm nicht mal meine Projektgruppe mit schon ein paar Projekten durchkompiliert ohne die 1.x GB zu durchbrechen.
Sven Harazim
--
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz