AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi TMemoryStream u. Virtueller Speicher
Thema durchsuchen
Ansicht
Themen-Optionen

TMemoryStream u. Virtueller Speicher

Ein Thema von DataCool · begonnen am 24. Okt 2003 · letzter Beitrag vom 24. Okt 2003
Antwort Antwort
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

TMemoryStream u. Virtueller Speicher

  Alt 24. Okt 2003, 11:32
Hi Leute,

folgendes Problem :

1. Ich mit dem IdTcpClient der Indy-Komponenten einen Live-Daten-Stream von einem Server
2. Der Ablauf besteht aus zwei Schritten:
Schritt 1: Verbindung herstellen und Solange verbindung besteht den nächsten Datenblock ziehen(mit Schritt 2)
Schritt 2: TMemoryStream erzeugen, Daten in MemoryStream lesen, Stream in Format umwandeln und darstellen, MemoryStream wieder freigeben

Läuft alles wunderbar, jetzt habe ich allerdings von ein paar User gehört das nach längerer Zeit(10-20min.), das Streaming abbricht mit der Fehlermeldung, nicht gnügend virtueller Speicher !
Warum das ? Ich gebe den MemoryStream definitiv immer wieder frei und wenn ich mir im TaskManager die Speicherausnutzung meines Progg anschaue bleibt diese immer gleich bzw. erhöht sich um einen MemoryStream und verringert sich um einen Memory-Stream !

Gibt es da ein bekanntes Problem mit dem Handling ? Das der Speicher z.B. freigegeben wird, aber von WinDoof noch als benutzt markiert ist ?

Ich denke mal, ich sollte sowieso den MemoryStream nur einmal am Anfang erzeugen und immer den gleichen benutzen und ihn danach clearen, oder was meint Ihr ?

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Kamil

Registriert seit: 16. Aug 2002
178 Beiträge
 
#2

Re: TMemoryStream u. Virtueller Speicher

  Alt 24. Okt 2003, 13:09
Hi,
da wird wahrscheinlich irgendwas nicht freigegeben(muss nicht unbedigt der Stream sein). Teste mal dein Programm mit MemProof. Da findest du die stellen, an denen Speicher/Objekte/andere Resourcen nicht freigegeben wurden.

Ich mache sowas immer mit einem einzigen MemoryStream, der mit stream.size:=0 geleert wird nachdem die Daten verarbeitet wurden.
  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 22:51 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