
|
If you were logged in you would be able to see more operations.
|
|
|
JRuby
Created: 23/Jul/08 04:44 AM
Updated: 27/Aug/08 03:49 PM
|
|
| Component/s: |
Compiler
|
| Affects Version/s: |
JRuby 1.1.3
|
| Fix Version/s: |
JRuby 1.1.5
|
|
I discovered today that for some time local variable assignment was causing method bodies to always be heap-based. This is likely the source of a lot of performance issues and memory pressure in previous releases, including JRuby 1.1.3. As a result, I think it's absolutely critical that we do two things immediately:
- Finish creating benchmarks for all logical paths through all AST nodes, so we have a set of tests we can run to look for regressions and measure improvement
- Examine all cases in the compiler where different AST nodes cause different types of deoptimization, and clearly document or eliminate those cases
Given the severity of this local variable issue, I suspect there are many other performance faults hiding in the compiler and the AST inspection process. Suggestions for how to start also adding unit tests that confirm we're correctly compiling or correctly inspecting the AST are also welcome.
|
|
Description
|
I discovered today that for some time local variable assignment was causing method bodies to always be heap-based. This is likely the source of a lot of performance issues and memory pressure in previous releases, including JRuby 1.1.3. As a result, I think it's absolutely critical that we do two things immediately:
- Finish creating benchmarks for all logical paths through all AST nodes, so we have a set of tests we can run to look for regressions and measure improvement
- Examine all cases in the compiler where different AST nodes cause different types of deoptimization, and clearly document or eliminate those cases
Given the severity of this local variable issue, I suspect there are many other performance faults hiding in the compiler and the AST inspection process. Suggestions for how to start also adding unit tests that confirm we're correctly compiling or correctly inspecting the AST are also welcome. |
Show » |
|