AGB  ·  Datenschutz  ·  Impressum  







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

Arbeitsspeicher läuft über - wie leeren

Ein Thema von Ykcim · begonnen am 19. Aug 2010 · letzter Beitrag vom 20. Aug 2010
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

AW: Arbeitsspeicher läuft über - wie leeren

  Alt 19. Aug 2010, 13:22
Moin,
Delphi-Quellcode:
setlength(Cols4,15);//<----???? wird speicehr belegt
Cols4:=Cols41;
setlength(Cols4,15);//<---- wird neuer belegt
Genau das ist das Problem.
Wenn du ein SetLength mit exakt der gleichen Größe machst, wird einfach nur neuer Speicher reserviert und der Alte nicht freigegeben → Voilà! Unser Speicherleck!
http://www.delphipraxis.net/153654-s...ml#post1041224

Ich wäre mir da nicht sicher. Oder habe ich da was übersehen?

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Arbeitsspeicher läuft über - wie leeren

  Alt 19. Aug 2010, 13:32
Moin,....Ich wäre mir da nicht sicher. Oder habe ich da was übersehen?

MfG
Fabian
Nein hast Du nicht. Aber er verwendet doch das erste array nicht. Sollte also nur der Hinweis sein das er ein Array erstellt und es nicht benutzt. Hatt er selber schon korrigiert

@Ykcim, mach mal nach

Delphi-Quellcode:
Function......
var
   .....
begin
 SetLength(Cols, 0);
 .....
 .....
if Assigned(MySQLRes) then
begin
    // zurückgelieferte Anzahl der Spalten
    ColCount := mysql_num_fields(MySQLRes);
    SetLength(Cols, ColCount);
    SetLength(Rows, ColCount, 0);
Gruss alfold

Geändert von alfold (19. Aug 2010 um 13:44 Uhr)
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Arbeitsspeicher läuft über - wie leeren

  Alt 19. Aug 2010, 13:48
Warum ist den das hier Auskommentiert?
Delphi-Quellcode:
         // gespeicherte Abfrage wieder freigeben
         {mysql_free_result(MySQLRes);} //←Das da
Da wird doch der Speicher wieder freigegeben!
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#4

AW: Arbeitsspeicher läuft über - wie leeren

  Alt 19. Aug 2010, 13:55
Leider keinerlei Veränderungen. Habe es mit dem Taschenrechner bei mehrfacher Wiederholung getstet. Immer das gleiche Muster... seufz
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#5

AW: Arbeitsspeicher läuft über - wie leeren

  Alt 19. Aug 2010, 14:37
@Teekeks
Danke, danke, danke, danke!!!!

Ich habe keine Ahnung, warum das auskommentiert war!

Aber das war die Lösung. Jetzt komme ich nicht mehr über 10MB -
auch nach x-maligen Ausführen!!!!


Nocheinmal DANKE - das Ihr drangeblieben bist!!!
Patrick

Geändert von Ykcim (19. Aug 2010 um 14:46 Uhr)
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Arbeitsspeicher läuft über - wie leeren

  Alt 19. Aug 2010, 15:19
@Teekeks
Danke, danke, danke, danke!!!!

Ich habe keine Ahnung, warum das auskommentiert war!

Aber das war die Lösung. Jetzt komme ich nicht mehr über 10MB -
auch nach x-maligen Ausführen!!!!


Nocheinmal DANKE - das Ihr drangeblieben bist!!!
Bitte, Bitte.
Gern geschehen
Manchmal sieht man den Wald vor lauter Bäumen nicht
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  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:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz