Java ImageIO.write () tarda hasta 6 segundos

Estoy escribiendo una aplicación web donde necesito enviar una imagen del servlet al cliente. La imagen se genera dinámicamente y es bastante grande (+ - 2MB). Puede ser jpeg, png o gif.

Ahora, estoy usando ImageIO.write () para escribir la imagen en la transmisión de salida, pero es muy lenta. Se tarda hasta 6 segundos hasta que el cliente vea la imagen. Necesito acelerarlo.

¿Alguna sugerencia

btw. Estoy consciente deBuscando una alternativa más rápida a ImageIO tema. Pero no me ayudó. Dado que es lento con PNG, ImageMagick no es una solución y he probado JAI y fue aún peor.

Gracias por adelantad

Editar

Para mostrarle un código:

BufferedImage bi = [code to generate Image];
response.setContentType(mime);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(bi,"png",out);

esmintí el manejo de excepciones para facilitar la lectura.

Respuestas a la pregunta(3)

Su respuesta a la pregunta