Review request for JDK-8035948 - Redesign property listeners for shared classes
Hannes Wallnoefer
hannes.wallnoefer at oracle.com
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
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 <hannes.wallnoefer at oracle.com> 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
More information about the nashorn-dev
mailing list