2016-05-03 9 views
2

Betty hat eine wunderbare flexible Abstraktionsschicht, die verwendet wird, um Puffer zum Lesen und Schreiben darzustellen, die sehr gut mit NIO funktionieren können. In Netty 4 ist dies die ByteBuf-Klasse und in Netty 3 ist dies der ChannelBuffer.Vermeidung von Nettokopien von InputStream

Ich habe es mit einer Bibliothek (JDBC) zu tun, die einen InputStream für einen Teil der Daten als Teil einer internen Speicher-Engine zurückgibt. Der aktuelle Code kopiert dies in ein intermediäres Byte-Array und baut den ChannelBuffer um dieses Byte-Array auf, bevor er es zur Verarbeitung an Netty weitergibt. Ich versuche, die Anzahl unnötiger Kopien zu reduzieren, die in diesem Stapel passieren, und möchte den InputStream ohne Zwischenkopie direkt an Netty übergeben, so dass Netty den Inhalt des InputStreams direkt in den Socket schreiben kann, ohne ein großes Zwischenobjekt zuzuweisen. Gibt es in Netty eine Funktion, mit der ein schreibgeschützter ChannelBuffer/ByteBuf aus einem InputStream erstellt werden kann, der keine vollständige Kopie des Datasets aufruft?

Antwort

1

Vielleicht, was Sie suchen, ist die ChunkedWriteHandler und ChunkedStream?

Verwandte Themen