Review request for JDK-8006559: Octane:pdfjs leaks memory, runs slower iteration to iteration
A. Sundararajan
sundararajan.athijegannathan at oracle.com
Fri Apr 26 08:33:25 PDT 2013
+1
-Sundar
On Friday 26 April 2013 08:44 PM, Hannes Wallnoefer wrote:
> I found something I didn't like: ScriptFunction.getPrototype() was
> made abstract, but the prototype field was still in ScriptFunction and
> protected. I now moved everything to ScriptFunctionImpl and made the
> prototype field private.
>
> New webrev: http://cr.openjdk.java.net/~hannesw/8006559/webrev.01/
>
> Hannes
>
> Am 2013-04-26 16:42, schrieb Jim Laskey (Oracle):
>> +1
>>
>> On 2013-04-26, at 11:04 AM, Hannes Wallnoefer
>> <hannes.wallnoefer at oracle.com> wrote:
>>
>>> Please review JDK-8006559: Octane:pdfjs leaks memory, runs slower
>>> iteration to iteration
>>>
>>> http://cr.openjdk.java.net/~hannesw/8006559/
>>>
>>> What happened in pdfjs was that each new function instance created a
>>> prototype object that was registered as property listener with
>>> Object.prototype. Although we were using WeakReference for this the
>>> references themselves where only cleared when a property on
>>> Object.prototype was added, modified, or deleted, which never
>>> happens with pdfjs.
>>>
>>> I tried a few solutions and settled on using WeakHashMap because it
>>> allows for efficient removal both through GC and manual removal.
>>> This makes it impossible for us to support the listenersDead counter
>>> so I removed it. I also made instantiation of the prototype property
>>> of script functions lazy.
>>>
>>> Pdfjs score now is > 3000 on my laptop and stable (before it peaked
>>> at 1300 before starting to dive).
>>>
>>> Hannes
>
More information about the nashorn-dev
mailing list