Hi,
wieder mal eine "Grundsatzfrage":
Momentan warte ich bei session.write(obj) mit .await() darauf, dass ein Paket wirklich verschickt wurde.
Warum warte ich ? Weil ich zum Senden immer ein und denselben Buffer benutze. Wenn ich den Buffer bloß in die Warteschlange einreihen würde, könnte es passieren, dass in den Buffer innerhalb meines Programms erneut geschrieben wird, obwohl der Buffer noch garnicht verschickt wurde...
Problem: Mir ist aufgefallen, dass mein Programm ein gutes Stück langsamer läuft, wenn ich await() benutze. Die Konsequenz ist jetzt natürlich, dass ich meinen Buffer (Kurz bevor ich ihn verschicke), dupliziere und in einen neuen ByteBuffer kopiere, was meiner Meinung nach unschön ist. Außerdem bringt das ganze noch ein weiteres Problem:
Es kann passieren (Wenn mal Mina langsamer die Pakete verschickt, als das Programm neue in die Queue setzt), dass es OutOfHeapspace Exceptions gibt... Was natürlich auch verständlich ist, da ja immer neue Bufferinstanzen erstellt werden.
Wie macht ihr das ?
Gruß,
Chris
wieder mal eine "Grundsatzfrage":
Momentan warte ich bei session.write(obj) mit .await() darauf, dass ein Paket wirklich verschickt wurde.
Warum warte ich ? Weil ich zum Senden immer ein und denselben Buffer benutze. Wenn ich den Buffer bloß in die Warteschlange einreihen würde, könnte es passieren, dass in den Buffer innerhalb meines Programms erneut geschrieben wird, obwohl der Buffer noch garnicht verschickt wurde...
Problem: Mir ist aufgefallen, dass mein Programm ein gutes Stück langsamer läuft, wenn ich await() benutze. Die Konsequenz ist jetzt natürlich, dass ich meinen Buffer (Kurz bevor ich ihn verschicke), dupliziere und in einen neuen ByteBuffer kopiere, was meiner Meinung nach unschön ist. Außerdem bringt das ganze noch ein weiteres Problem:
Es kann passieren (Wenn mal Mina langsamer die Pakete verschickt, als das Programm neue in die Queue setzt), dass es OutOfHeapspace Exceptions gibt... Was natürlich auch verständlich ist, da ja immer neue Bufferinstanzen erstellt werden.
Wie macht ihr das ?
Gruß,
Chris