AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Speicherverbrauch einzelner Componenten anzeigen ...
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherverbrauch einzelner Componenten anzeigen ...

Ein Thema von erich.wanker · begonnen am 2. Jun 2010 · letzter Beitrag vom 2. Jun 2010
Antwort Antwort
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
460 Beiträge
 
Delphi XE4 Professional
 
#1

Speicherverbrauch einzelner Componenten anzeigen ...

  Alt 2. Jun 2010, 14:47
Hallo Leute,

Irgendwo in meiner Software ist der Wurm drinn

FBserver 2.1.3 <-> Zeos 6.6.6 <-> Delphi 7 Anwendung

Umso länger die Software läuft, umso mehr Speicher wird im Taskmanager angezeigt .. fängt mit 17 MB an und kommt nach 10 Stunden auf 700MB..

Eigentlich wird alles, was zur Laufzeit erzeuigt wird, wieder freigegeben.
(Fenster, Labels,Querys ect..)

Aber irgendwas wird anscheinend nicht freigegeben ... und ich find´s nicht !

Hab mir schon einiges von Sysinternals Process Utilities als auch memProof zugelegt - find aber nix!




Gibt es ein Tool, das folgende Möglichkeit bietet?

Auflistung der einzelnen Componenten inkl. Speicher zur Laufzeit:

Delphi-Quellcode:
Software.exe - Form1 (1300 KB)
                  |_ Label1 (1400 KB)
                  |_ Label2 (1300 KB)
                  |_ Panel 1 (1400 KB)
                       |_ Edit1 (1700 KB)
                       |_ Memo1 (1100 KB)

                   |_ TZQuery1 (2370.000KB)
Vielen Dank

Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Speicherverbrauch einzelner Componenten anzeigen ...

  Alt 2. Jun 2010, 15:01
Nach Komponenten aufzuschlüsseln dürfte witzlos sein, da der größte Teil des Speicherverbrauchs nicht-visuell ist.

Hol die lieber FastMM oder so, und lass dir die Memoryleaks anzeigen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Speicherverbrauch einzelner Componenten anzeigen ...

  Alt 2. Jun 2010, 15:02
Sowas ist eh nicht ganz so einfach, da in der VCL viele Dinge nur nur von einer Komponente genutzt werden.

Ich würde erstmal FastMM, MemProf oder dergleichen ins Programm integrieren und mal nach Speicherlecks ausschau halten.

[edit] oh, wo kommt denn jfh plötlich her
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
460 Beiträge
 
Delphi XE4 Professional
 
#4

Re: Speicherverbrauch einzelner Componenten anzeigen ...

  Alt 2. Jun 2010, 15:08
Vielen Dank himitsu und jfheins

Werd mich mit memProof noch mal beschäftigen ...
FastMM494 hab ich .. aber bin ehrlich gesagt, nicht schlauer geworden ..


Schönen Feiertag

Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Speicherverbrauch einzelner Componenten anzeigen ...

  Alt 2. Jun 2010, 15:13
Hallo,

bei D7 geht auch MemCheck

MemCheck


Als 1. Unit in der dpr einbinden,
MemChk (oder so ähnlich) als ersten Befehl rein.
Anwendung laufen lassen,
nach dem Benede bleibt MemCheck beim 1. MemLeak stehen,
per Ctrl+F2 zeigt er dir alle Leaks an.

Am besten mit externen Debug-Symbolen und Stack-Frames compilieren,
ist aber auf der HP beschrieben.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Speicherverbrauch einzelner Componenten anzeigen ...

  Alt 2. Jun 2010, 15:18
Ach ja, all diese Test-Codes prüfen nur auf Speicherleckt, welche über den Delphi-Speichermanager laufen.
Wenn sich etwas direkt bei Windows (z.B. VirtualAlloc) Speicher holt, dann fällt dieses nicht auf.

Was zeigt denn Delphi-Referenz durchsuchenGetHeapStatus so an Verbrauch an?



PS: Eventuell könnte dieses auch nur die krasse Auswirkung einer Speicherdefragmentierung sein.
(aber wir kennen ja dein Programm nicht und wissen vorallem nicht was wie oft gemacht wird)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Speicherverbrauch einzelner Componenten anzeigen ...

  Alt 2. Jun 2010, 15:25
Hallo,

meistens sind es aber gerade eigene Programm-Fehler,
die sich hier sehr schön finden lassen.

Laß ihn doch erst einmal die Haupt-Leaks (seine eigenen ) finden.


Heiko
Heiko
  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 18:35 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