Robert Mercer created JENA-1044:
-----------------------------------
Summary: Significant performance improvement in E_Bound
Key: JENA-1044
URL: https://issues.apache.org/jira/browse/JENA-1044
Project: Apache Jena
Issue Type: Improvement
Reporter: Robert Mercer
Priority: Minor
I would like to suggest a significant performance improvement that I've seen
occurring in various setups. Basically the issue occurs if you do a
bound(?somethingthatsnotbound) this causes an "internal" runtime exception to
be thrown down in the code which in turn is caught and handled by returning a
false from E_Bound. This only occurs in the case of a bound(?x) returning
false. This is an issue as runtimeexceptions are very costly and if you do this
quite a lot in your query or attempt to do many queries that have lots of
bound() functions in them you can end up with significant performance
degradation.
Suggested fix in E_Bound.java
@Override
public NodeValue evalSpecial(Binding binding, FunctionEnv env)
{
if (expr instanceof NodeValue){
return NodeValue.TRUE; // probably just our code has
this case as we do some prebindings.
} else {
return binding.contains(expr.asVar()) ? NodeValue.TRUE
: NodeValue.FALSE;
}
}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)