[OpenJDK 2D-Dev] AAShapePipe concurrency & memory waste

Laurent Bourgès bourges.laurent at gmail.com
Wed Apr 10 19:46:33 UTC 2013


Sergey,

I am not an expert here but just my 50 cents.
> This optimization shall take place only if it is really hotspot. But if it
> is a really hotspot - probably it would be better to remove these
> array/object allocation at all and use plane bytes?
>

Java2D calls AAShapePipe for each shape (line, rectangle ...) rendering so
it is an hotspot for me for big drawings as it will depends on the drawing
complexity (for example, Andrea MapBench can produce maps having more than
100 000 shapes per image ...)


> I see that some methods which take it as argument doesn't use them. And
> most of the time we pass AATileGenerator and abox[] to the same methods, so
> it could be merged?
>

For now I did not want to modify the AAShapePipe signatures: abox[] is
filled by AATileGenerator implementations (ductus, pisces, others) in order
to have the shape bounds and render only tiles covering this area.


>
> Also I suggest to use jmh for java micrbenchmarks.
> http://openjdk.java.net/**projects/code-tools/jmh<http://openjdk.java.net/projects/code-tools/jmh>
> So your test will be:
> http://cr.openjdk.java.net/~**serb/AAShapePipeBenchmark.java<http://cr.openjdk.java.net/%7Eserb/AAShapePipeBenchmark.java>
>

Thanks,
I will try it asap

Laurent

>
>
>
> --
> Best regards, Sergey.
>
>



More information about the core-libs-dev mailing list