Jave Heap Size und ObjectStreams.ein java bug ?

  • Themenstarter Themenstarter Peter_guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
P

Peter_guest

Gast
Hallo

Ich verschicke über ein Netzwerk Client/Server Objekte hin und her. Diese Objekte sind ca. 20 MB groß. Irgendwann zerreist es allerdings die JVM mit Out of Memory. Eine Vergößerung des heap sizes bringt auch nichts, da dann evtl. mal ein object mehr verschickt wird und danach ist trotzdem Ende. Hab schon manuell den GC aufgerufen, aber hilft auch nix.
Kann es sein, dass es ein Bug von Java ist, dass der ObjectInputStream immer größer wird ? Hat jm ähnliche Erfahrungen ?

gruß
peter
 
versuch mal ein flush() auf den stream, das objekt falls es noch im speicher ist auf null zu setzen und dann den gc aufzurufen.
 
flush() klappt beim outputstream prima...aber leider gibts sowas nicht beim inputstream.

wenn ich den inputstream=null setze oder z.B. sage instream = new ObjectInputStream (clientSocket.getInputStream()); dann werden keine daten mehr vom client bzw. server empfangen.

wie sollte so ein inputstream denn generell funktionieren? werden die Daten vom Stream wenn ich mit MyObject = (TestObject) inputstream.readObject() auslese nicht autom. gelöscht?
 
ja schon aber dann sind die daten ja trotzdem noch im speicher...
nachdem du die daten dann verarbeitet hast lösch sie wieder und führ manuell den gc aus. wenn das nicht hilft soltlest du dir vielelicht überlegen ob ne datenbank als puffer nicht geeigneter wär...
 
ich habs jetzt so gelöst, dass ich den Stream zerstöre in dem ich die Netzwerkverbindung immer wieder zu mache und wieder neu erstelle...ist nicht so die elegante Methode...

wie meinst Du das mit Datenbank als Puffer (bin noch newbie in java)?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben