AGB  ·  Datenschutz  ·  Impressum  







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

Speicherverbrauch stark gewachsen

Ein Thema von Ralf22 · begonnen am 29. Sep 2017 · letzter Beitrag vom 10. Okt 2017
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#11

AW: Speicherverbrauch stark gewachsen

  Alt 30. Sep 2017, 03:04
Zitat:
Speicher ist soooo billig geworden.
Falsch gedacht. Aufgrund der immens hohen Nachfrage von Speichermodulen (flüchtiger Speicher) im asiatischen Raum ist Arbeitsspeicher teurer geworden und nicht billiger.
Ich befürchte, hier bist du auf Sarkasmus reingefallen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Ralf22

Registriert seit: 13. Aug 2009
8 Beiträge
 
#12

AW: Speicherverbrauch stark gewachsen

  Alt 4. Okt 2017, 11:41
In beiden benutzten Delphi Versionen wird eine 32 bit Anwendung erzeugt.
Bei anderen kleineren Projekten ist der Unterschied im Speicherverbrauch nicht so dramatisch, diese Anwendungen benötigen ca. 20% mehr Speicher, wenn diese mit D10.2 Tokyo übersetzt wurden.
Das Projekt, bei dem der Speicherverbrauch um 50% ansteigt, benutzt intern einige Stringlisten, die bis zu 50.000 Einträge haben und 2 ClientDataSets mit bis zu 100.000 Records. Zumindest sind das meine Hauptverdächtigen für dieses Problem. Es gibt auch noch 3 TList Ableitungen deren Items Packed Records sind, auch jeweils mit ca. 50.000 Items. Das Projekt ist schon 20 Jahre alt !
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Speicherverbrauch stark gewachsen

  Alt 4. Okt 2017, 12:48
Kannte XE2 bereits Unicode - bzw. waren die XE2-Strings bereits Unicode oder waren es ANSI-Strings? Wenn es ANSI-Strings waren, kannst du grob eine Verdopplung des Speichers für deine Stringlisten annehmen.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Speicherverbrauch stark gewachsen

  Alt 4. Okt 2017, 12:56
Kannte XE2 bereits Unicode - bzw. waren die XE2-Strings bereits Unicode oder waren es ANSI-Strings? Wenn es ANSI-Strings waren, kannst du grob eine Verdopplung des Speichers für deine Stringlisten annehmen.

Grüße
Mikhal
Ab D2009 ist String = UnicodeString
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Ralf22

Registriert seit: 13. Aug 2009
8 Beiträge
 
#15

AW: Speicherverbrauch stark gewachsen

  Alt 4. Okt 2017, 13:08
Beide Compilate (XE2, XE10.2) verwenden Unicode strings.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#16

AW: Speicherverbrauch stark gewachsen

  Alt 4. Okt 2017, 13:35
Kannst ja mal die Größen der packed record s vergleichen. Vielleicht haben sich hier die beinhaltenden Datentypen verändert. Was mir auch in den Sinn kam: Wenn du Konstrukte der Form var A: array[TIrgendeinEnum] of TIrgendwasGrosses hast und das Enum einige neue Elemente bekommen hat, könnte das auch zu mehr Verbrauch führen. Kann man leider nur spekulieren.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Speicherverbrauch stark gewachsen

  Alt 4. Okt 2017, 15:48
Könnte man nicht mit FastMM sich die Anzahl der Speicher-Reservierungen und was die jeweils an Speicher fressen ansehen? Damit könnte man doch eigentlich die notwendigen Rückschlüsse ziehen, ob es das ClientDataSet, die Record-Liste oder was anderes ist.

Lesestoff:
1. http://www.thedelphigeek.com/2012/06...-purposes.html
2. https://stackoverflow.com/questions/14390934/
3. https://github.com/pleriche/FastMM4/...sage%20Tracker
  Mit Zitat antworten Zitat
Ralf22

Registriert seit: 13. Aug 2009
8 Beiträge
 
#18

AW: Speicherverbrauch stark gewachsen

  Alt 5. Okt 2017, 12:49
Das Problem ist gelöst, peinlicherweise kein Delphi-Problem, das Programm benutzt einige C-Treiber. Einer der C-Treiber verursacht den hohen Speicherverbrauch. Das XE10 Programm benutzt jetzt nur noch ca. 3% mehr RAM-Speicher als die XE2 Exe.
Danke an alle.
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#19

AW: Speicherverbrauch stark gewachsen

  Alt 6. Okt 2017, 07:15
Wenn man fragen darf, wie hast du das ermitteln können und wie hat der C-Treiber plötzlich beim Umstieg den Speicherverbrauch so ansteigen lassen?
  Mit Zitat antworten Zitat
Ralf22

Registriert seit: 13. Aug 2009
8 Beiträge
 
#20

AW: Speicherverbrauch stark gewachsen

  Alt 10. Okt 2017, 10:03
Mit dem Debugger, nach dem Aufruf einer Funktion in der Treiber DLL ist der Speicherverbrauch stark angestiegen. Da war ein Überlauf bei der Berechnung der Größe für einen Pufferspeicher.
Wir hatten schon öfters nicht initialisierte Stack Variablen die über Jahre immer zufälliger Weise mit Werten versehen waren, die keine Probleme machten. Bei einer neuen Delphiversion fällt das dann plötzlich auf und man findet einen uralten Bug.
z.B. gibt Delphi keine Warnung aus, wenn eine Variable von einen Mengentypen nicht initialisiert wird. Zumindest war das an der Stelle so, ich weiss nicht ob das generell so ist.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      

 

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 00:50 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