
| Key: |
RVM-225
|
| Type: |
Improvement
|
| Status: |
Open
|
| Priority: |
Minor
|
| Assignee: |
Unassigned
|
| Reporter: |
Ian Rogers
|
| Votes: |
0
|
| Watchers: |
0
|
|
If you were logged in you would be able to see more operations.
|
|
|
|
Pointers to static methods are placed in the JTOC. Pointers to virtual methods are placed in the TIB. Special methods are non-virtual, their target is known at runtime and they don't need a virtual method dispatch. Private methods and object initializers are special methods invoked by invokespecial. For object initializers we turn the call into the same as an invokestatic with an object passed as argument 0. For private methods, however, we turn the call into the same as an invokevirtual. This reduces pressure on the JTOC but inflates the size of the TIB. We should consider altering this design and evaluating the performance impact.
|
|
Description
|
Pointers to static methods are placed in the JTOC. Pointers to virtual methods are placed in the TIB. Special methods are non-virtual, their target is known at runtime and they don't need a virtual method dispatch. Private methods and object initializers are special methods invoked by invokespecial. For object initializers we turn the call into the same as an invokestatic with an object passed as argument 0. For private methods, however, we turn the call into the same as an invokevirtual. This reduces pressure on the JTOC but inflates the size of the TIB. We should consider altering this design and evaluating the performance impact. |
Show » |
| There are no comments yet on this issue.
|
|