【发布时间】:2014-01-14 04:25:52
【问题描述】:
作为我的网络应用程序的一部分,我使用javax.imageio.ImageIO 来读取/写入BufferedImage。 最初,我的应用程序在 Tomcat 7 上运行,而且运行速度非常快。自从我将我的应用程序部署到 WebSphere 8.5.5 后,读/写性能显着下降(慢了几倍)。
起初,我认为 ImageIO 在 WebSphere 上表现不佳是因为 IBM 的 JVM,所以我将 Tomcat 配置为使用 IBM Java,但它再次在 WebSphere 上表现得更好。 使用 Tomcat 大约需要 2.5 秒,使用 WebSphere 12 秒 来读取、处理和写入图像(大小~= 200KB)。
我可以使用一些 IBM JVM 特定配置来加快图像读取速度吗?
这是我使用的代码的摘录:
// srcImagePath & dstImagePath are both pointing
// to the location outside app servers
BufferedImage image = ImageIO.read(new File(srcImagePath));
// here I am only resizing image using com.twelvemonkeys.image.ResampleOp
// from twelvemonkeys library
BufferedImage destImage = resizeImage(image);
ImageIO.write(destImage, "jpg", dstImagePath);
这是我使用的JVM配置(更改):
Tomcat 7.0.50:-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m
WebSphere 8.5.5:初始堆大小 512m,最大堆大小:1280m
IBM Java 1.7_64
Windows 7
是否有任何我不知道的 WebSphere 配置可以加快处理速度?
【问题讨论】:
-
如果您还没有这样做,您可以尝试将分析器连接到您的 WebSphere 进程,并查看时间花在了哪里。差异非常令人惊讶......
-
我去看看,谢谢评论!
标签: tomcat7 javax.imageio websphere-8 imgscalr