Einzelnen Beitrag anzeigen

Roachford
(Gast)

n/a Beiträge
 
#3

Re: Torrent Client - socket.sendstream mit Memory Leak

  Alt 23. Okt 2008, 21:35
Zitat von InfixIterator:
Vielleicht hilft es, wenn du den Memory Stream wieder frei gibst:
Lies bitte den Beitrag zuvor nochmal bis zum Ende. Und die Hilfe zu TCustomWinSocket.SendStream() hätte auch geholfen.

@umpani: Der Code ist so in Ordnung. Und soweit wäre vllt. wirklich mal die schreibe_string_in_stream() Methode schön zu betrachten.

Und da der Speicher beim minimieren verkleinert wird, zeigt, dass es wohl nicht unbedingt um ein Speicherleck handelt sondern eher um schlechten Code, der den Speichermanager zur Verzweiflung bringt. FastMM4 ist schon wirklich gut sowas auszugleichen, aber anscheinend schafft er es nicht ganz.

Beispiele dafür ist z.B. schon dein Code zum HexDump: Du baust den String einzeln in der Schleife zusammen und erweiterst ihn jedesmal. Für den Speichermanager und für die Effektivität wäre es deutlich besser vor der Schleife mit SetLength() den String zu setzen und dann die Hexdumps direkt in den String zu zuweisen.
  Mit Zitat antworten Zitat