Hallo Leute
Ich habe ein Programm geschrieben mit dem man im Netzwerk ganz einfach Dateien austauschen kann. So bisher funktioniert das Programm super, es tauscht die Dateien aus, egal welches Format und sie sind auch am ende immer noch ausführbar und so. Ich ich lese die Dateien in ein byte array ein, was 1mb groß is und sende dieses Array über dem Stream raus. Aber jedes mal wenn er den nächsten mb aus der Datei lesen soll erstellt es das byte array in einer Schleife mit new byte neu und das Array mit dem vorherigen mb aus der Datei bleibt im Arbeitsspeicher vorhanden und lässt sich mit dem garbage collector auch nicht entfernen. wenn ich z.B. eine Datei sende die 20mb groß ist steigt der Arbeitsspeicher verbrauch meines Programms während des sendens und bleibt so groß. Wenn ich dann auch diese Datei nochmal senden würde hält das Programm während des sendens an und ich bekomme einen Fehler ausgegeben das der Heapspace voll ist. was muss ich tun um die gesendete Datei wieder aus dem Arbeitsspeicher wieder gelöscht wird?? auch System.gc(); nützt nichts.
Danke schonmal im vorraus.
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Hm, kannst Du evtl. den betreffenden Quelltextabschnitt nochmal posten?
Gruß
Borlander