diff options
author | bae <none@none> | 2013-03-07 14:05:21 +0400 |
---|---|---|
committer | bae <none@none> | 2013-03-07 14:05:21 +0400 |
commit | bb34c3bd42ca049e1e9a467ad85f55e8ccb3c66f (patch) | |
tree | acf698a8a9696ec57d59e4e75c6e2006f8d61518 /src/share/demo/java2d/J2DBench | |
parent | 6ed50b04ceb93ff20d7c87053f4ed5bb5814c4ab (diff) | |
download | jdk8u_jdk-bb34c3bd42ca049e1e9a467ad85f55e8ccb3c66f.tar.gz |
8005530: [lcms] Improve performance of ColorConverOp for default destinations
Reviewed-by: prr, jgodinez
Diffstat (limited to 'src/share/demo/java2d/J2DBench')
-rw-r--r-- | src/share/demo/java2d/J2DBench/build.xml | 12 | ||||
-rw-r--r-- | src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_large.jpg | bin | 0 -> 430301 bytes | |||
-rw-r--r-- | src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_medium.jpg | bin | 0 -> 148164 bytes | |||
-rw-r--r-- | src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_small.jpg | bin | 0 -> 16258 bytes | |||
-rw-r--r-- | src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/ColorConversionTests.java | 1 | ||||
-rw-r--r-- | src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/EmbeddedProfileTests.java | 166 |
6 files changed, 175 insertions, 4 deletions
diff --git a/src/share/demo/java2d/J2DBench/build.xml b/src/share/demo/java2d/J2DBench/build.xml index a36aca8cec..c29611d0f7 100644 --- a/src/share/demo/java2d/J2DBench/build.xml +++ b/src/share/demo/java2d/J2DBench/build.xml @@ -52,7 +52,7 @@ <javac debug="flase" source="1.5" target="1.5" srcdir="${src}" destdir="${build}"/> </target> - <target name="run" depends="dist" + <target name="run" depends="dist" description="run J2DBench" > <java jar="${dist}/J2DBench.jar" fork="true" @@ -60,7 +60,7 @@ </java> </target> - <target name="analyze" depends="dist" + <target name="analyze" depends="dist" description="run J2DAnalyzer" > <java jar="${dist}/J2DAnalyzer.jar" fork="true" @@ -80,6 +80,10 @@ <copy todir="${build}/j2dbench/tests/iio/images"> <fileset dir="${resources}/images" /> </copy> + <mkdir dir="${build}/j2dbench/tests/cmm/images"/> + <copy todir="${build}/j2dbench/tests/cmm/images"> + <fileset dir="${resources}/cmm_images" /> + </copy> </target> <target name="dist" depends="compile, resources" @@ -88,14 +92,14 @@ <mkdir dir="${dist}"/> <!-- Put everything in ${build} into the J2DBench.jar file --> - <jar jarfile="${dist}/J2DBench.jar" basedir="${build}" + <jar jarfile="${dist}/J2DBench.jar" basedir="${build}" excludes="j2dbench/report/**" > <manifest> <attribute name="Built-By" value="${user.name}"/> <attribute name="Main-Class" value="j2dbench.J2DBench"/> </manifest> </jar> - <jar jarfile="${dist}/J2DAnalyzer.jar" basedir="${build}" + <jar jarfile="${dist}/J2DAnalyzer.jar" basedir="${build}" includes="j2dbench/report/**" > <manifest> <attribute name="Built-By" value="${user.name}"/> diff --git a/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_large.jpg b/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_large.jpg Binary files differnew file mode 100644 index 0000000000..6d61c9f120 --- /dev/null +++ b/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_large.jpg diff --git a/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_medium.jpg b/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_medium.jpg Binary files differnew file mode 100644 index 0000000000..6b4ef3f38d --- /dev/null +++ b/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_medium.jpg diff --git a/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_small.jpg b/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_small.jpg Binary files differnew file mode 100644 index 0000000000..41fb2eaccb --- /dev/null +++ b/src/share/demo/java2d/J2DBench/resources/cmm_images/img_icc_small.jpg diff --git a/src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/ColorConversionTests.java b/src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/ColorConversionTests.java index e71b18857f..4916929c32 100644 --- a/src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/ColorConversionTests.java +++ b/src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/ColorConversionTests.java @@ -51,6 +51,7 @@ public class ColorConversionTests extends CMMTests { DataConversionTests.init(); ColorConvertOpTests.init(); + EmbeddedProfileTests.init(); } protected ColorConversionTests(Group parent, String nodeName, String description) { diff --git a/src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/EmbeddedProfileTests.java b/src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/EmbeddedProfileTests.java new file mode 100644 index 0000000000..3af6313eff --- /dev/null +++ b/src/share/demo/java2d/J2DBench/src/j2dbench/tests/cmm/EmbeddedProfileTests.java @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This source code is provided to illustrate the usage of a given feature + * or technique and has been deliberately simplified. Additional steps + * required for a production-quality application, such as security checks, + * input validation and proper error handling, might not be present in + * this sample code. + */ + +package j2dbench.tests.cmm; + +import j2dbench.Group; +import j2dbench.Option; +import j2dbench.Result; +import j2dbench.TestEnvironment; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.net.URL; +import javax.imageio.ImageIO; +import javax.imageio.ImageReader; +import javax.imageio.stream.ImageInputStream; + +/* This benchmark verifies how changes in cmm library affects image decoding */ +public class EmbeddedProfileTests extends ColorConversionTests { + + protected static Group grpRoot; + protected static Group grpOptionsRoot; + + protected static Option inputImages; + + public static void init() { + grpRoot = new Group(colorConvRoot, "embed", "Embedded Profile Tests"); + + grpOptionsRoot = new Group(grpRoot, "embedOptions", "Options"); + + inputImages = createImageList(); + + new ReadImageTest(); + } + + private static enum IccImageResource { + SMALL("images/img_icc_small.jpg", "512x512", "Small: 512x512"), + MEDIUM("images/img_icc_medium.jpg", "2048x2048", "Medium: 2048x2048"), + LARGE("images/img_icc_large.jpg", "4096x4096", "Large: 4096x4096"); + + private IccImageResource(String file, String name, String description) { + this.url = CMMTests.class.getResource(file); + this.abbrev = name; + this.description = description; + } + + public final URL url; + public final String abbrev; + public final String description; + } + + private static Option createImageList() { + IccImageResource[] images = IccImageResource.values(); + + int num = images.length; + + String[] names = new String[num]; + String[] abbrev = new String[num]; + String[] descr = new String[num]; + + for (int i = 0; i < num; i++) { + names[i] = images[i].toString(); + abbrev[i] = images[i].abbrev; + descr[i] = images[i].description; + } + + Option list = new Option.ObjectList(grpOptionsRoot, + "Images", "Input Images", + names, images, abbrev, descr, 1); + + return list; + } + + public EmbeddedProfileTests(Group parent, String nodeName, String description) { + super(parent, nodeName, description); + addDependencies(grpOptionsRoot, true); + } + + private static class Context { + URL input; + + public Context(TestEnvironment env, Result res) { + + IccImageResource icc_input = (IccImageResource) + env.getModifier(inputImages); + + input = icc_input.url; + } + } + + public Object initTest(TestEnvironment env, Result res) { + return new Context(env, res); + } + + public void cleanupTest(TestEnvironment env, Object o) { + Context ctx = (Context)o; + ctx.input = null; + } + + private static class ReadImageTest extends EmbeddedProfileTests { + public ReadImageTest() { + super(grpRoot, "embd_img_read", "ImageReader.read()"); + } + + public void runTest(Object octx, int numReps) { + final Context ctx = (Context)octx; + final URL url = ctx.input; + ImageInputStream iis = null; + ImageReader reader = null; + + try { + iis = ImageIO.createImageInputStream(url.openStream()); + reader = ImageIO.getImageReaders(iis).next(); + } catch (IOException e) { + throw new RuntimeException("Unable to run the becnhmark", e); + } + + do { + try { + reader.setInput(iis); + BufferedImage img = reader.read(0); + reader.reset(); + + iis = ImageIO.createImageInputStream(url.openStream()); + } catch (Exception e) { + e.printStackTrace(); + } + } while (--numReps >= 0); + } + } +} |