thanks for reporting @normanmaurer! My guess is this will have a measurable impact if the initial size is too small (currently defaults to 32). We reset to the initial array size on each decode operation. @Scottmitch agree... I would say we should double up to 512 bytes . WDYT ? I can do a pr It will depend upon the use case but can we derive a guess from https://github.com/http2/http_samples or some other sample size? We can start with 512 or 1024 and refine later if you don't have much cycles to investigate. @Scottmitch good idea... let me check @Scottmitch here you go https://github.com/netty/netty/pull/6857. I think I will have not much time to long into it in more detail so I just used 1024 for now 1024 sounds like a good start to me ... we can revise/improve later if necessary. Fixed by https://github.com/netty/netty/pull/6857
nit: consider using tertiary for less boiler plate:

```java
final int newLength = bytes.length >= 1024 ? bytes.length + initialCapacity : bytes.length << 1;
``` Consider leaving a comment as to how this value was derived (educated guess, average header length from source X, etc..) sure why not sure can do
Reconsider growing strategy in HpackHuffmanDecoder
At the moment we just increase my intialCapacity but it may make sense to double it up to a certain size:

https://github.com/netty/netty/blob/4.1/codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanDecoder.java#L237
codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanDecoder.java
codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanDecoder.java
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanDecoder.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanDecoder.java
index 307d11a7d53..b49c30d69b5 100644
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanDecoder.java
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanDecoder.java
@@ -231,8 +231,11 @@ AsciiString end() throws Http2Exception {
 
         private void append(int i) {
             if (bytes.length == index) {
-                // Always just expand by INITIAL_SIZE
-                byte[] newBytes = new byte[bytes.length + initialCapacity];
+                // Choose an expanding strategy depending on how big the buffer already is.
+                // 1024 was choosen as a good guess and we may be able to investigate more if there are better choices.
+                // See also https://github.com/netty/netty/issues/6846
+                final int newLength = bytes.length >= 1024 ? bytes.length + initialCapacity : bytes.length << 1;
+                byte[] newBytes = new byte[newLength];
                 System.arraycopy(bytes, 0, newBytes, 0, bytes.length);
                 bytes = newBytes;
             }
