AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Speichernutzung einer Komponente ermitteln?

Speichernutzung einer Komponente ermitteln?

Ein Thema von moelski · begonnen am 14. Jan 2010 · letzter Beitrag vom 14. Jan 2010
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 09:23
Moin !

Ist es eigentlich irgendwie möglich den Speicherverbrauch eine bestimmten Komponente zu ermitteln?

Ich habe hier ein AdvStringGrid und ein QuantumGrid6. Mich würde mal interessieren, wer die Daten platzsparender im RAM ablegt.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.561 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 09:46
Nein, es gibt keine Möglichkeit, da du nicht an alles rankommst und demnach nicht "zählen" kannst.

Du kannst höchstens die Komonenten dynamisch erzeugen und den Verbrauch vorher, mit dem Nachher vergleichen
und jenachdem, wie gut du deine Testumgebung gestaltet hast, ist der Differenswert dann auch relativ genau.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 09:47
Ok Danke für die Info.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.561 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 09:51
Das Problem hatte ich grad auch in meinem himXML (in der CheckLibs-Demo).
Da dort leider oftmals verschiedene Speichermanager verwendet werden und das auch noch gleichzeitig,
also nicht alles z.B. über den DelphiMM läuft, kann man dort nur grob den globalen Verbrauch messen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 09:55
Mit dem ProcessExplorer kann man sich auch ganz gut einen Überblick verschaffen.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.561 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 10:06
Ganz genau geht es aber so eben nicht, da z.B. der DelphiMM mehr Speicher reserviert, als belegt ist.
Durch die Speicherfragmentierung und das "Unwissen" wieviel des Speichers zwar reserviert, aber nicht verwendet ist, kann es parktisch schon recht ungenau werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 10:10
Moin !

Zitat:
da z.B. der DelphiMM mehr Speicher reserviert, als belegt ist.
Ok, aber man bekommt eine Vorstellung was der ganze Prozess verschlingt.

In meinem Fall habe ich mal mit AdvStringGrid (TMS) und QuantumGrid6 (DevExpress) geschaut was passiert wenn ich ~700000 Werte eintrage (2 Spalten).

Die Speicherlast die der Processexplorer anzeigt sagt schon alles:
TMS -> ~245MB
DevExpress -> ~90MB.

Da kommt es auf 1-2MB mehr oder weniger nicht an Das ist mal eindeutig
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.561 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 10:32
nur mal was zum Thema Fragmentierung:
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i: Integer;
  M: array[1..25000000] of Pointer;

begin
  WriteLn(Length(M) * 10, ' Byte belegen - weiter mit [enter]');
  ReadLn;
  for i := Low(M) to High(M) do
    GetMem(M[i], 10);

  WriteLn;
  WriteLn('98% freigeben - weiter mit [enter]');
  ReadLn;
  for i := Low(M) to High(M) do
    if i mod 50 <> 0 then
      FreeMem(M[i]);

  WriteLn;
  WriteLn('nochmal 1% freigeben - weiter mit [enter]');
  ReadLn;
  for i := Low(M) to High(M) div 2 do
    if i mod 50 = 0 then
      FreeMem(M[i]);

  WriteLn;
  WriteLn('das restliche 1% freigeben - weiter mit [enter]');
  ReadLn;
  for i := High(M) div 2 + 1 to High(M) do
    if i mod 50 = 0 then
      FreeMem(M[i]);

  WriteLn;
  WriteLn('beenden - weiter mit [enter]');
  ReadLn;
end.
bin gespannt, was dir der Taskmanager darüber sagt

ist war ein etwas krasses Beispiel - z.B. in D7:
- 250 MB für GetMem + 100 MB für's Array
- 500 MB belegt
- nach Freigabe von 98% des Speichers immernoch 500 MB belegt
- ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Fuchtel

Registriert seit: 9. Nov 2005
Ort: Bamberg
50 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Speichernutzung einer Komponente ermitteln?

  Alt 14. Jan 2010, 11:21
Hallo,

zum genaueren ermitteln des Speicherverbrauchs gibt es VirtualMemoryMap

von SysinternalTools:

VMMap

Gibt es zwar nur in Englisch ist aber dafür FreeWare.


Fuchtel
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 00:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf