History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: JRUBY-2853
Type: Bug Bug
Status: Open Open
Priority: Blocker Blocker
Assignee: Charles Oliver Nutter
Reporter: Charles Oliver Nutter
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
JRuby

Examine each deoptimization case in ASTInspector to see if it's still valid or could be eliminated

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

Time Tracking:
Not Specified


 Description  « Hide
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:
  1. 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
  2. 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.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Charles Oliver Nutter - 27/Aug/08 03:49 PM
Some of this review/improvement was done for 1.1.4, but there's more to do so I'm bumping it to 1.1.5. I think we're going to want to look at a whole new way of gathering this information that's more modular and smarter.