【发布时间】:2012-12-18 20:48:01
【问题描述】:
我维护一个 Java 应用程序,它生成很多小部件(我说小部件是因为它会生成 PDF 或 PNG 文件 - 到磁盘)。该应用程序旨在生成 PDF 和后来的图像成为一个要求。
生成图像时,我的每秒事务数 (TPS) 受到影响。基本流程是我创建了一个 BufferedImage 和 Graphics2D 实例。使用 Graphics2D 对象绘制一些文本。我拉入了一些其他图像以添加到我的新图像中。然后我将 BufferedImage 写入到 OutputStream。
我已将 ImageIO.write() 方法视为可能的罪魁祸首。该应用程序是 RESTful 的,整个事务可能需要 500 毫秒。我已经为 ImageIO.write() 方法计时,以占用该事务时间的至少 80-90%。
ImageIO.write(image,"PNG",os); // 420ms !!!!
我很难找到解决 ImageIO.write() 的方法...感谢您提出任何建议。
注意:图像是 RGB ColorModel && 最终大小约为 50kb。我已经看到二进制颜色模型的性能更好,但颜色是必需的。
【问题讨论】:
标签: java image performance 2d javax.imageio