INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Tabelle: Speicher freigeben?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.10.2009, 15:34
Beitrag #1

danielsan Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: Mar 2007

2011-SP1
2006
DE

22000
Deutschland
Tabelle: Speicher freigeben?
Hallo Leute,
folgendes Problem:

Mein Programm ermöglicht es, Datensätze aus einer SQL-Datenbank zu lesen, anzuzeigen und nach Excel zu speichern.
Die Daten werden als 2D-Array ausgelesen und in ein Tabellenelement (Anzeigeelement) zur Anzeige geschrieben.
Bei einer neuen Anfrage wird die Tabelle zunächst mit einem leeren Array beschrieben, bevor die entsprechenden Daten kommen. Das mache ich größtenteils über Referenzen und Eigenschaftsknoten mit "Wert".
Liest man jetzt eine gewisse Anzahl an Datensätzen ein, wird eine nicht unerhebliche Menge an Arbeitsspeicher reserviert (z.b. 500MB bei 70000 Zeilen). Wenn eine neue Anfrage stattfindet, die z.B. nur eine Zeile ergibt, wird der Speicher aber nicht wieder freigegeben. (höchstens 50 MB). Auch nach Beenden des Programms und sogar nach Schließen des LV-Projektes ist der Speicher noch belegt. Eine Freigabe erfolgt erst nach vollständiger Beendigung von LV.
Lässt sich das irgendwie optimieren? Ich möchte die Anzeige sowieso langfristig auf 5000 Zeilen begrenzen, finde es aber seltsam, dass der Speicher nicht wieder freigegebn wird. Hängt das mit der Referenz auf die Tabelle zusammen (wird vor Beenden des programms aber geschlossen)

Gruß,
Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.10.2009, 17:44
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Tabelle: Speicher freigeben?
' schrieb:Eine Freigabe erfolgt erst nach vollständiger Beendigung von LV.
Das sieht schon sehr so aus, als ob da irgendwo ein Handle noch offen ist.

Sowas passiert, wenn man zu einen Open (für was auch immer) keinen korrespondieren Close macht. Kann es sein, dass da irgendwo ein Close fehlt?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2009, 07:30
Beitrag #3

danielsan Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: Mar 2007

2011-SP1
2006
DE

22000
Deutschland
Tabelle: Speicher freigeben?
Kannst Du mal bitte erklären, was Du mit open meinst? Ein Beispiel vielleicht?

Klar die Tabelle beschreibe ich mit referenz und Eigenschaftsknoten. Diese Referenz schließe ich aber am Programmende wieder.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2009, 10:30
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Tabelle: Speicher freigeben?
' schrieb:Kannst Du mal bitte erklären, was Du mit open meinst? Ein Beispiel vielleicht?
Beispiel ist gerade schlecht, hab hier kein LV.

Mit Open meine ich alles, was eine Referenz, einen Handle etc. generiert. Jeder FileOpen z.B. erzeugt einen File-Handle, der mit FileClose geschlossen werden muss.

Auch bei der Datenbank kann ich mir gut vorstellen, dass da - möglicherweise sogar ständig - Handle/Referenzen erzeugt werden - und die müssen halt wieder geschlossen werden.

Wie ist denn das mit den 500MB, die für 70000 Zeilen reserviert werden. Hast du mal eine Daumenpeilung gemacht, ob das realistisch ist? Wie lange dauert es denn, bis die 70000 Zeilen eingelesen sind?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Speicher von genutztem Array freigeben moTo 3 4.593 11.05.2016 10:07
Letzter Beitrag: rolfk
  Frage zu Melder/Queues freigeben Hasenfuss 4 6.460 27.03.2013 10:15
Letzter Beitrag: Hasenfuss
  Probleme mit dem Freigeben von Speicherplatz Thermoman 2 4.645 25.04.2005 15:22
Letzter Beitrag: Sarah

Gehe zu: