Review request for JDK-8035948 - Redesign property listeners for shared classes

Hannes Wallnoefer hannes.wallnoefer at
Mon Mar 3 01:36:48 PST 2014

I didn't notice any overhead from synchronization.

I did notice a small reduction in performance from using soft references 
instead of hard references in PropertyMap history in some benchmarks 
(mostly deltablue I think). However, other solutions but they either had 
worse effects on performance or could possibly cause memory leaks.

Still I think the net effect on performance is a positive one (even if 
only slightly) caused by reduced listener creation and history lookup 


Am 2014-03-02 10:39, schrieb Marcus Lagergren:
> Have you done any benchmarking whether the synchronization in PropertyListeners gives us overhead? Any other numbers we should know about?
> On 27 Feb 2014, at 18:22, Hannes Wallnoefer <hannes.wallnoefer at> wrote:
>> Please review JDK-8035948 - Redesign property listeners for shared classes:
>> This prepares property maps and property listeners to work better with classes that are reused between JS environments. The central ideas are:
>> - Reuse property maps between globals in order to minimize polymorphism.
>> - Use SoftReferences for property map history to avoid memory leaks
>> - Redesign property listeners to be attatched to property maps only since ScriptObjects are specific to one JS environment.
>> - Reduce number of property listeners by only creating them when needed (when a callsite accesses an inherited property).
>> - Reduce number of prototype history lookups in property maps by using a unique combination of prototype/property maps from the start.
>> Actual class sharing functionality is coming in a later webrev. Let me know if you have any questions about this.
>> Hannes

More information about the nashorn-dev mailing list