AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi "Is it Magic?" oder: Warum sinkt die Speicherauslastung?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Mithrandir · begonnen am 15. Mai 2009 · letzter Beitrag vom 15. Mai 2009
Antwort Antwort
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
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

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

  Alt 15. Mai 2009, 01:22
WAS für ein Speicherverbrauch?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 15. Mai 2009, 01:23
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?
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 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]
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

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

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

  Alt 15. Mai 2009, 01:45
Zitat von Luckie:
WAS für ein Speicherverbrauch?
Zitat von himitsu:
hust]
das ist Anzahl der RAM-Riegel, welche durch übermäßge Nutzung abgenutzt wurden
oder gar abgeraucht sind
[/hust]
So isses.

Hab's ja schon angepasst...

@himi: Ich guck mir das morgen heute nochmal genauer an.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: "Is it Magic?" oder: Warum sinkt die Speichera

  Alt 15. Mai 2009, 08:08
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: "Is it Magic?" oder: Warum sinkt die Speichera

  Alt 15. Mai 2009, 09:56
@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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

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

Re: "Is it Magic?" oder: Warum sinkt die Speichera

  Alt 15. Mai 2009, 10:05
Hmm.... Ja, wahrscheinlich. Ich habe mir halt die Spalte "Speicherauslastung" angesehen. Aber ich kanns jetzt leider nicht mehr reproduzieren. Zweimal gings, jetzt nicht mehr...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  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:33 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