HtmlResponseWriterImpl is a very light object created many times. But its constructor uses a memory intensive test if character encoding is valid:
// validates the encoding, it will throw an UnsupportedEncodingException if the encoding is invalid
new String("myfaces".getBytes(), characterEncoding);
catch (UnsupportedEncodingException e)
throw new IllegalArgumentException("Unsupported encoding: "+characterEncoding);
this code is number 1. of byte  allocations in my tests.
We can probably remove this check entirely: a exception will be thrown a few moments later if encoding is not supported
Review other code in constructor too - it must be fast as possible.