Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Is it Magic?" oder: Warum sinkt die Speicherauslastung? (https://www.delphipraxis.net/134051-magic-oder-warum-sinkt-die-speicherauslastung.html)

Mithrandir 14. Mai 2009 23:56


"Is it Magic?" oder: Warum sinkt die Speicherausla
 
Hi ihr,

Ich bin gerade über etwas gestolpert, was mich etwas stutzig macht. Ich zweifel zwar nicht an meinem Verstand, aber an meinem Wissen bezgl. der Speicherverwaltung von Windows (oder Delphi? Oder ist doch alzaimar schuld?)

Ich mache kurz gesagt folgendes:

Delphi-Quellcode:
 
 TORPNode = class(TObject)
     ID: Cardinal;
     MercLat: Single;
     MercLon: Single;
  end;
  • Mittels Create; erstelle ich eine neue Instanz von TORPNode
  • Dann übergebe ich sie via Add; an ein TIntegerDictionary
  • Freu mich und beginne wieder bei Punkt 1

So steigt natürlich einmählich die Speicherauslastung an. Bei ungefähr 20 MB Speicherauslastungs (laut Taskmanager) bricht die Auslastung wieder auf den Startwert ein, steigt allerdings schneller (zumindest wirkt es so). Zu diesem Zeitpunkt dürfte er ein paar Tausend Objekte erstellt haben.

Kann mir jemand erklären, was da passiert? Ich hätte jetzt erwartet, dass sie immer weiter steigt, und nicht plötzlich weniger wird... :gruebel:

Wenn ihr noch weitere Parameter braucht (Genaue Anzahl der Elemente, etc.) liefer ich das gerne nach... :)

//Edit:

Eben habe ich das Programm nochmal durchlaufen lassen, da hat er das Verhalten nicht mehr gezeigt. :shock:
Bin ich einfach übermüdet, oder ist der Taskmanager für sowas nicht verlässlich? :gruebel:

Luckie 15. Mai 2009 00:22

Re: "Is it Magic?" oder: Warum sinkt der Speicherv
 
WAS für ein Speicherverbrauch?

himitsu 15. Mai 2009 00:23

Re: "Is it Magic?" oder: Warum sinkt der Speicherv
 
Das der Speicherverbrauch hierbei "springt" liegt wohl an der Speicherfragmentierung und an der Verwaltung des Speichers.
Also hier speziell am Array.


Ist schon im Turbo Delphi FastMM integriert, oder kam das erst später da rein? :gruebel:
Schau mal, ob es bei dir die Funktion GetMemoryManagerState (Unit System) gibt und laß dir dessen Werte anzeigen.

in D7 (also vorm integrierten FastMM) klingt diese hier etwas interessant (ebenfalls System-Unit)
Delphi-Quellcode:
AllocMemCount: Integer; { Number of allocated memory blocks }
AllocMemSize: Integer; { Total size of allocated memory blocks }
[hust]
Zitat:

Zitat von Luckie
WAS für ein Speicherverbrauch?

das ist Anzahl der RAM-Riegel, welche durch übermäßge Nutzung abgenutzt wurden
oder gar abgeraucht sind
[/hust]

Mithrandir 15. Mai 2009 00:45

Re: "Is it Magic?" oder: Warum sinkt der Speicherv
 
Zitat:

Zitat von Luckie
WAS für ein Speicherverbrauch?

Zitat:

Zitat von himitsu
hust]
das ist Anzahl der RAM-Riegel, welche durch übermäßge Nutzung abgenutzt wurden
oder gar abgeraucht sind
[/hust]

So isses. :thumb: :mrgreen:

Hab's ja schon angepasst... :stupid:

@himi: Ich guck mir das morgen heute nochmal genauer an. ;)

Meflin 15. Mai 2009 07:08

Re: "Is it Magic?" oder: Warum sinkt die Speichera
 
Naja, welchen Arbeitsspeicher haste denn im Task Manager überhaupt aktiviert? Schalte mal die Spalten "Arbeitsspeicher - ausgelagerter Pool" und "Arbeitsspeicher - Nicht ausgelagerter Pool" dazu, evtl. bringt das ja schon Licht ins Dunkel ;)

Luckie 15. Mai 2009 08:56

Re: "Is it Magic?" oder: Warum sinkt die Speichera
 
@Meflin: Genau das meinte ich. Eventuell hast du dir den Speicher angeguckt, der ausgelagert wird. Und wenn dieser dann ausgelagert wird, dann sink dieser natürlich, während der virtuelle Speicherverbrauch steigen müsste.

Mithrandir 15. Mai 2009 09:05

Re: "Is it Magic?" oder: Warum sinkt die Speichera
 
Hmm.... Ja, wahrscheinlich. :gruebel: Ich habe mir halt die Spalte "Speicherauslastung" angesehen. Aber ich kanns jetzt leider nicht mehr reproduzieren. Zweimal gings, jetzt nicht mehr... :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 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