[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
More information about the core-libs-dev
mailing list