Jim,

Here is the new webrev:
http://cr.openjdk.java.net/~lbourges/marlin/marlin.4/

Changes:
- Fixed line lengths to 80 chars
- Fixed / removed single-line "/** short comment */"
- Fixed Unsafe access
- Use PhantomReference / ReferenceQueue and the new OffHeapDisposer thread
to free off-heap memory to avoid finalization in Renderer
- added the ArrayCachesHolder class in RendererContext to gather all
ArrayCache instances: use it wrapped using a WeakReference to reduce the
memory footprint of large array caches
- Use AccessController.doPrivileged(new GetPropertyAction(key)) to properly
get System properties in a secure environment in MarlinRenderingEngine

I hope this patch is now good enough to be pushed into the graphics
rasterizer project.

PS: I tested again using weak references for RendererContext (TL storage)
using -Dsun.java2d.renderer.useRef=weak and it is working well: maybe I
should use this mode by default instead of SoftReferences (better memory
footprint): to be benchmarked and discussed...

First results (JDK8) with WeakReference seems as good as using
SoftReference (very minimal GC overhead):
Tests    27    9    9    9
Threads    4    1    2    4
Pct95    132.155    130.149    130.757    135.558

Regards,
Laurent

Reply via email to