Issue OBJS112 (performance: shared-member table) has just been modified by user rob...@ma...
You can view the issue detail at the following URL:
<http://icandy.homeunix.org:443/scarab/issues/id/OBJS112>
The following modifications were made to this issue:
hmm, I was originally thinking of using the instance-constant mechanism for compiled CompiledNodeEvaluator classes as a way of storing the shared tables... it might be best to do something different because
1) these tables don't need to be serializable, since they can be generated at run time... also not serializing them makes it easier to change the implementation of the table (ie. if we want to use something other than Hashtable in the future)... the compiled node evaluator should simply treat them as an java.lang.Object
2) since they are generated at runtime, they won't be available to be passed in to the generated CompiledNodeEvaluator constructor
NOTE1: if they aren't already, the instance constants could be stored in a static field, since the generated CompiledNodeEvaluator is always a singleton. This will save a few instructions in access them, since we won't have to push "this" onto the stack. I should benchmark this, to see if it makes a difference, but I suspect it will help. The same goes for the shared scope tables
NOTE2: implementation notes:
// enter scope:
scope = new BasicScope( scope, sharedScopeTableXYZ );
... code ...
// leave scope:
if( sharedScopeTableXYZ == null )
sharedScopeTableXYZ = scope.getSharedScopeTable();
|