Einzelnen Beitrag anzeigen

InfixIterator

Registriert seit: 25. Nov 2007
16 Beiträge
 
#5

Re: Torrent Client - socket.sendstream mit Memory Leak

  Alt 24. Okt 2008, 19:38
@Roachford socket.sendstream ungleich tmemorystream
Das eine sind Streams von Sockets das andere Streams im Arbeitsspeicher.
(Sockets kommen in dieser Funktion eh nicht direkt vor...)
Der übergebene Stream im Socket mag zwar freigegeben werden, doch wie sieht es in der Funktion aus?
(Ich denke die Daten bleiben deswegen im Arbeitsspeicher, da sie nicht sauber gelöscht werden. Erst nach einer Minimierung fällt dem Rechner auf, das die Funktion schon längst abgehackt ist und gibt den Speicher frei.)


@umpani ich habe echt noch nie jemanden gesehen, der ein result so misbraucht wie du
Ich hätte anstatt des results eine Variable genommen und erst beim zurückgeben des Funktionswertes die Variable ans Result gehängt.
(So könnte man die Variable auch noch Freigeben...)

Keine Ahnung ob es hilft, aber ein Versuch wäre es Wert und der Code den man ändern müsste ist ja nicht alzu lang.

Edit:
evtl. könnte eine globale Variable mit tmemorystream das Problem abschaffen, da nur eine erstellt wird und benutzt wird.
So würde nicht immer wieder neuer Speicher im Arbeitsspeicher reserviert werden.
Jedoch könnte es aber zu massiven Probleme kommen, wenn du Threads benutzt...
  Mit Zitat antworten Zitat