首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Websphere 8.5.5中读/写慢

在Websphere 8.5.5中读/写慢
EN

Stack Overflow用户
提问于 2014-01-13 14:18:30
回答 1查看 776关注 0票数 0

作为我的web应用程序的一部分,我使用javax.imageio.ImageIO来读取/编写BufferedImage。最初,我的应用程序运行在Tomcat 7上,运行速度相当快。自从我将我的应用程序部署到WebSphere 8.5.5上后,读写性能明显下降(慢了几倍)。

起初,我认为ImageIO在WebSphere上的表现很差,因为IBM,所以我将Tomcat配置为使用IBM,而且它的性能也比在WebSphere上要好得多。使用Tomcat,需要使用2.5秒和WebSphere 12秒来读取、处理和写入图像(大小为~= 200 to )。

我是否可以使用IBM特定的配置来加速图像的读取?

下面是我使用的代码的摘录:

代码语言:javascript
复制
// 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:初始堆大小512 m,最大堆大小:1280 m

IBM Java 1.7_64

Windows 7

是否有任何WebSphere配置我不知道,可以加快处理?

EN

回答 1

Stack Overflow用户

发布于 2014-01-13 17:49:13

经过分析,我找到了反应缓慢的原因。

WebSphere在图像处理过程中消耗的大部分时间是由ResampleOp类引起的,特别是:

代码语言:javascript
复制
com.twelvemonkeys.image.ResampleOp.resample

方法是图像尺寸调整的瓶颈。使用本机Java的AffineTransform,我无法获得高质量的调整大小的图像,因此我最终使用了imgscalr库。imgscalr在我的例子中表现非常好(包括Tomcat和WebSphere),并且具有高质量的图片。

为了正确读取CMYK图像,我仍然在使用12维蒙基的JPEGImageReader。

更新:

我使用ResampleOP的调整代码是:

代码语言:javascript
复制
ResampleOp resampleOp = new ResampleOp(width, height);
BufferedImage rescaledImage = resampleOp.filter(image, null);

对于Scalr,我现在使用的代码是:

代码语言:javascript
复制
BufferedImage rescaledImage = Scalr.resize(image, width, height);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21093470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档