[OpenJDK 2D-Dev] sun.java2D.pisces big memory usage (waste ?)

Laurent Bourgès bourges.laurent at gmail.com
Fri Apr 5 14:32:00 UTC 2013


Dear all,

Here is my first pisces (beta) patch (webrev):
http://jmmc.fr/~bourgesl/share/java2d-pisces/webrev-1/

I succeed in fixing memory usage by having only 1 pisces instance
(Renderer, stroker, iterator ...) per RendererContext (GC friendly).

Impressive results between small and large drawings:


dc_boulder_2013-13-30-06-13-17.ser dc_shp_alllayers_2013-00-30-07-00-47.ser
JVM 1T 2T 4T 1T 2T 4T  OpenJDK8 Patch Beta 2556 3190 5106 22952 26552
46010  OpenJDK8
Ref 3982 4852 8842 55889 77691 141981  Oracle JDK8 (ductus) 1894 3905 7485
20911 39297 103392






 Patch / REF *155,79%* *152,10%* *173,17%* *243,50%* *292,60%* *308,59%*  Patch
/ Ductus 74,10% *122,41%* *146,59%* 91,11% *148,00%* *224,72%*
Low mem tests: -Xmx128m to maximize GC overhead

http://jmmc.fr/~bourgesl/share/java2d-pisces/MapBench_PATCH_V1.log (beta)
http://jmmc.fr/~bourgesl/share/java2d-pisces/MapBench_REF.log
http://jmmc.fr/~bourgesl/share/java2d-pisces/MapBench_OracleDuctus.log

Andrea, I modify the MapBench to perform explicit GC between tests (+
creating graphics / image out of the test loop):
http://jmmc.fr/~bourgesl/share/java2d-pisces/MapBench/

Note: these results were performed with the AAShapePipe proposed patch
(small impact).

Is there somebody interested to enhance Pisces renderer code and support me
as sponsor ?

Look at PiscesConst to enable/disable several flags (useThreadLocal,
doChecks to check array cleanup ...); please ask me if you have any
question.

TBD:
- cleanup / statistics / profile cpu performance ...
- enhance Dasher / Stroker to deal with shape out or partially out the
clipping area.

Cheers,
Laurent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20130405/c030b35e/attachment.html>


More information about the 2d-dev mailing list