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 overhead.

Hannes


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 <[email protected]> 
wrote:

Please review JDK-8035948 - Redesign property listeners for shared classes:

http://cr.openjdk.java.net/~hannesw/8035948/

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

Reply via email to