Einzelnen Beitrag anzeigen

Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#1

"Is it Magic?" oder: Warum sinkt die Speicherausla

  Alt 15. Mai 2009, 00:56
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...

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.
Bin ich einfach übermüdet, oder ist der Taskmanager für sowas nicht verlässlich?
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat