[ 
https://issues.apache.org/jira/browse/JENA-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne resolved JENA-1044.
---------------------------------
       Resolution: Fixed
         Assignee: Andy Seaborne
    Fix Version/s: Jena 3.0.1

> 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
>            Assignee: Andy Seaborne
>            Priority: Minor
>             Fix For: Jena 3.0.1
>
>         Attachments: PercentTime_clean.png, RuntimeException_clean.png
>
>
> 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
> {noformat}
> @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; 
>               }
>       } 
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to