AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Collection - Speicher freigeben

Ein Thema von matz · begonnen am 2. Mär 2007 · letzter Beitrag vom 5. Mär 2007
Antwort Antwort
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#1

Collection - Speicher freigeben

  Alt 2. Mär 2007, 12:31
Hallo Gemeinde,

ich habe mich heute mit Collection (hier aus dem Forum) beschäftigt.
Dabei ist mir aufgefallen das zwar vor einem LoadfromFile ein Clear ausgeführt wird aber die Speicherauslastung im TaskManager sich nicht ändert sondern nach erfogtem Load erhöht.

Ich habe geplant diese Klasse in einem Programm einzusetzten welches als Viewer für eine von einem anderen Programm gespeicherte Collection dient. Um die Anzeige zu aktualisieren soll die gespeicherte Collection jedesmal neu geladen werden.

Was kann ich machen um das gewünschte Verhalten zu erreichen (natürlich habe ich die Boardsuche bereits bemüht, ich habe aber leider nichts passendes gefunden)

schon mal besten Dank für Eure Mühe

Gruß Matz
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Collection - Speicher freigeben

  Alt 2. Mär 2007, 12:57
Zitat von matz:
Dabei ist mir aufgefallen das zwar vor einem LoadfromFile ein Clear ausgeführt wird aber die Speicherauslastung im TaskManager sich nicht ändert sondern nach erfogtem Load erhöht.
Das ist "normal". Der Memory-Manager von Delphi holt sich grössere Speicherblöcke von Windows und teilt kleinere Blöcke (bis herunter zu 16 Bytes ?) dann deinem Programm zu.
Das Freigeben von Speicher hinterlässt "Löcher wie in schweizer Käse" in dem Speicher des MM.
Bei erneuten Speicheranforderungen findet sich manchmal kein passendes Loch, also wird nochmals ein grosser Block von Windows angefordert.

Es gibt auch MM, die etwas intelligenter mit dem Speicher umgehen, als die der Standard MM von Delphi tut.
Andreas
  Mit Zitat antworten Zitat
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#3

Re: Collection - Speicher freigeben

  Alt 2. Mär 2007, 13:20
Na das ist aber dann schon mal sehr schlecht.
Ich habe gerade mal getestet beim 1. Start (inkl. Ladevorgang) hat das Prog ca. 12000K belegt nach eínem Refresh sind es schon mal 19000 usw.
Wenn ich das Spiel nach eine Weile mache bekomme ich bestimmt bald eine Fehlermeldung wegen mangeldem Speicher. Da sollte es doch eine Lösung geben.

Oder?

Gruß Matz
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Collection - Speicher freigeben

  Alt 2. Mär 2007, 13:30
Zitat von matz:
Wenn ich das Spiel nach eine Weile mache bekomme ich bestimmt bald eine Fehlermeldung wegen mangeldem Speicher.
Mach dir mal keine unnötigen Sorgen, wenn dein Programm keinen Fehler hat, wird der Speicherverbrauch nicht ständig ansteigen. Es stellt sich nach kurzer Zeit eine Art Sättigungszustand ein.

Mit FastMM kannst du übrigens ganz gut Speicherfresser in deiner Anwendung lokalisieren.
Ausserdem ist dieser MM auch noch schneller als der Standard MM.
http://sourceforge.net/projects/fastmm
Andreas
  Mit Zitat antworten Zitat
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#5

Re: Collection - Speicher freigeben

  Alt 2. Mär 2007, 13:37
Danke erst mal für die Antworten.

Na da will ich mal hoffen das es sich einpegelt.
  Mit Zitat antworten Zitat
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#6

Re: Collection - Speicher freigeben

  Alt 2. Mär 2007, 14:55
Nun habe ich es mal getestet.

Es pegelt sich leider nicht ein und ich bekomme eine Fehlermeldung (Speichermangel).
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Collection - Speicher freigeben

  Alt 5. Mär 2007, 09:38
Zitat von matz:
Es pegelt sich leider nicht ein und ich bekomme eine Fehlermeldung (Speichermangel).
Dann muss du den FastMM einbinden; der hilft dir bei der Suche der Speicherlecks.
Andreas
  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 12:28 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