AGB  ·  Datenschutz  ·  Impressum  







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

Freier Speicher wird nicht freigegeben

Ein Thema von jr72 · begonnen am 19. Aug 2003 · letzter Beitrag vom 21. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
jr72

Registriert seit: 19. Aug 2003
6 Beiträge
 
#1

Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 13:27
Ich habe eine komplexe Anwendung in Delphi,
das rund um die Uhr laufen muss. Da es immer
mehr Speicher verbraucht, muss es aber geregelt
neu gestartet werden.
Eine Prüfung des Speichers mit GetHeapStatus ()
het ergeben, daß die Anwendung immer mehr
freien Speicher (FreeSmall) belegt.

ca. 30 Min. nach Start des Programms:
TotalAddrSpace: 5.242.880
TotalCommitted: 4.997.120
TotalUncommitted: 245.760
TotalAllocated: 2.403.732
TotalFree: 2.369.048
=========
FreeSmall: 703.464
FreeBig: 1.665.584
Unused: 0
Overhead: 224.340
HeapErrorCode: 0

nach ca. 24 Stunden:
TotalAddrSpace: 44.040.192
TotalCommitted: 43.810.816
TotalUncommitted: 229.376
TotalAllocated: 4.373.880
TotalFree: 39.007.308
FreeSmall: 38.986.088
==========
FreeBig: 21.220
Unused: 0
Overhead: 429.628
HeapErrorCode: 0

Wie kann ich den MemoryManager zwingen den Speicher
wieder abzugeben bzw. wieder zu verwenden?

Jürgen
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 13:33
Mit freeMem kannst du den Speicher wieder freigeben, den du zb mit GetMem dir registriest hast.
Vielleicht hilft es ja, aber sonst musst du vielleicht mal etwas relaevanten Code posten.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 13:34
Zitat von jr72:
Wie kann ich den MemoryManager zwingen den Speicher
wieder abzugeben bzw. wieder zu verwenden?
In dem du reservierten Speicher wieder frei gibst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 13:35
und herzlich willkommen in der Delphi-PRAXiS

IMHO liegt das Problem nicht so sehr am Speichermanager von Delphi, auch wenn der seine Macken hat, sondern eher daran, daß Du wahrscheinlich irgendwelche Objekte nicht sauber freigibst.

Ansonsten kannst Du ja einen Schwellwert einbauen und nach erreichen dieses Die Anwendung sich selbst neustarten lassen (siehe Hier im Forum suchenShellExecute)

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jr72

Registriert seit: 19. Aug 2003
6 Beiträge
 
#5

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 14:11
Da der Speicher in der Struktur THeapStatus als FreeSmall und nicht als TotalAllocated aufgeführt wird, gehe ich davon aus, dass er bereits
freigegeben wurde. Der Anteil von FreeSmall ist in der Zeit von 2 MB auf 38 MB angestiegen. Somt muss es doch etwas mit dem MemoryManager
zu tun haben.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 14:16
Wo Du Recht hast...

Mal eine Frage. Nutzt Du viele VCL Klassen in Deinem Projekt. Da gibt es ein bekanntes Problem. Irgendwo im Forum war mal der Link

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jr72

Registriert seit: 19. Aug 2003
6 Beiträge
 
#7

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 14:21
Zitat von sakura:
Wo Du Recht hast...

Mal eine Frage. Nutzt Du viele VCL Klassen in Deinem Projekt. Da gibt es ein bekanntes Problem. Irgendwo im Forum war mal der Link

......
ja, es werden unter andrem folgende Komponeten genutzt:
- TeeChart
- MDI-Formulare
- QReport
- IB-Objects
- dynamsche Arrays
...

[edit=sakura]BBCode zugelassen. Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 14:47
Links zum Thema Leaks in Delphi Memory.Manager (ist aber nicht der, den ich gesucht habe

http://codecentral.borland.com/codec...sting?id=14283
http://codecentral.borland.com/codec...sting?id=18735
http://codecentral.borland.com/codec...sting?id=16380

und

http://www.automatedqa.com/support/leaksd5.asp

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jr72

Registriert seit: 19. Aug 2003
6 Beiträge
 
#9

Re: Freier Speicher wird nicht freigegeben

  Alt 19. Aug 2003, 16:12
Ich werde den MemoryManager testen...
  Mit Zitat antworten Zitat
jr72

Registriert seit: 19. Aug 2003
6 Beiträge
 
#10

Re: Freier Speicher wird nicht freigegeben

  Alt 20. Aug 2003, 08:43
Status nach 16 Stunden Dauertest:
statt innerhalb von 24 Stunden von 10 MB auf 50 MB
in 16 Stunden von 10 MB auf 12 MB (laut TaskManager)

Leider funktioniert aber der Befehl GetHeapStatus() nicht mehr und dem
MemoryManager gibt es keine Funktion zur Statusermittlung.

Vielen Dank für die Hilfe

Jürgen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:39 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