Web アプリケーションの一部として、BufferedImageの読み取り/書き込みにjavax.imageio.ImageIOを使用しています。当初、私のアプリはTomcat 7で実行されていましたが、非常に高速に実行されていました。アプリをWebSphere 8.5.5にデプロイしてから、読み取り/書き込みのパフォーマンスが大幅に低下しました (数倍遅くなりました)。
最初は、IBM の JVM が原因で ImageIO の WebSphere でのパフォーマンスが悪いと思っていたので、IBM Java を使用するように Tomcat を構成しました。イメージ (サイズ ~= 200KB) の読み取り、処理、および書き込みに、Tomcatでは約2.5秒、WebSphereでは 12 秒かかります。
イメージの読み取りを高速化するために使用できる 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
ウィンドウズ7
私が認識していない、処理を高速化できる WebSphere 構成はありますか?