Hi Mario,

                        ...jim

Mario Torre wrote:
I tried to figure out some "common" use case, so i did this (based on your suggestion too), I found this combination to force the pipe to be invalidated:

BufferedImage bimg =
    new BufferedImage(100, 100, BufferedImage.TRANSLUCENT);
Graphics2D g = bimg.createGraphics();
for (int i = 0; i < 100000; i++) {
  g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                     RenderingHints.VALUE_ANTIALIAS_ON);
  g.setComposite(AlphaComposite.getInstance(
                 AlphaComposite.SRC_OVER, 0.5f));
  g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                     RenderingHints.VALUE_ANTIALIAS_OFF);
  g.setComposite(AlphaComposite.getInstance(
                 AlphaComposite.SRC_OVER, 1.0f));
  g.fillRect(0,0,1,1);
}

I would set the AA hint or set the composite - one or the other - but not both. Basically you are looking for the minimum action that causes an invalidation/revalidation cycle in order to measure the impact. The more extraneous work in the inner loop, the less impact you will notice from any overhead the new code might have added.

In both cases I was using debug build (as make debug_build) on an Intel Core2 Duo T8300 running at full speed (2.40GHz).

I would also compare optimized to optimized as the debug build probably adds a bit of overhead on its own - again, which could mask any overhead your changes might have added.

Maybe I should run a more scientific test, but this doesn't look too bad to me :)

True - it's a nice quick check result, but to be sure it should be done with minimal test overhead on an optimized build...

                        ...jim

Reply via email to