Please review https://jbs.oracle.com/bugs/browse/JDK-8008648

Marcus Lagergren marcus.lagergren at oracle.com
Thu Feb 21 07:36:37 PST 2013


Yep. This is an initial model to make sure everything is sound. The heuristic for picking lazy methods will most likely change to something less aggressive. I would welcome suggestions as to how to determine if a variable function should be in scope or not in an outer function when inner functions haven't been evaluated yet.

/M

On Feb 21, 2013, at 4:17 PM, Attila Szegedi <attila.szegedi at oracle.com> wrote:

> +1, with the understanding that lazy inner functions force their outer functions to have all their variables in scope. Might want to raise an issue to track that.
> 
> 
> On Feb 21, 2013, at 3:00 PM, Marcus Lagergren <marcus.lagergren at oracle.com> wrote:
> 
>> Various scoping and callee problem related to the lazy JIT. Modified wall clock timing framework slightly to enable better logging.
>> 
>> http://cr.openjdk.java.net/~lagergren/8008648/
>> 
>> Lazy JIT now bootstraps significantly faster than normal JIT for large scripts. 
>> 
>> 
>> --
>> 
>> Mandreel startup (3 MB of JavaScript) - with the harness lazy jit and normal jit respectively
>> 
>> cthulhu:tip marcus$ java -Dnashorn.time -Dnashorn.compiler.lazy -jar dist/nashorn.jar test/script/external/octane/mandreel.js
>> test/script/external/octane/mandreel.js:30 ReferenceError: "BenchmarkSuite" is not defined
>> [JavaScript Parsing]      845  ms
>> [Lazy JIT Initialization] 66  ms
>> [Constant Folding]        86  ms
>> [Control Flow Lowering]   549  ms
>> [Type Attribution]        128  ms
>> [Code Splitting]          105  ms
>> [Type Finalization]       20  ms
>> [Bytecode Generation]     660  ms
>> [Code Installation]       27  ms
>> Total runtime: 3176 ms (Non-runtime: 2486 [78%])
>> 
>> cthulhu:tip marcus$ java -Dnashorn.time -Dznashorn.compiler.lazy -jar dist/nashorn.jar test/script/external/octane/mandreel.js
>> test/script/external/octane/mandreel.js:30 ReferenceError: "BenchmarkSuite" is not defined
>> [JavaScript Parsing]    902  ms
>> [Constant Folding]      102  ms
>> [Control Flow Lowering] 1545  ms
>> [Type Attribution]      1656  ms
>> [Code Splitting]        428  ms
>> [Type Finalization]     559  ms
>> [Bytecode Generation]   3710  ms
>> [Code Installation]     628  ms
>> Total runtime: 12353 ms (Non-runtime: 9530 [77%])
>> 
> 



More information about the nashorn-dev mailing list