Matriz de bytes a la conversión de imágenes en búfer lento

Tengo un código simple del lado del servidor que recibe una matriz de bytes que representa una imagen en formato JPEG y devuelve las dimensiones de la imagen.

public String processImage(byte[] data) {
    long startTime = System.currentTimeMillis();
    ByteArrayInputStream stream = new ByteArrayInputStream(data);
    BufferedImage bufferedImage;
    bufferedImage = ImageIO.read(stream);

    int height = bufferedImage.getHeight();
    int width = bufferedImage.getWidth();

    long endTime = System.currentTimeMillis();

    return "height="+height+" | width="+width+" | elapsed="+(endTime-startTime);
}

Funciona, pero el problema es que es inaceptablemente lento. Para una imagen que es 100KB, está tomando 6s. Para una imagen que es 900KB, está tomando 30s. ¿Se espera eso? ¿Hay alguna manera de hacer más rápida la conversión de la matriz de bytes a la imagen de almacenamiento en búfer?

Para su información, agarrar altura / ancho no es lo único que intento hacer. Eventualmente quiero procesar el bufferedImage. Así que obtener altura / anchura era solo un código de ejemplo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta