[ 
https://issues.apache.org/jira/browse/JENA-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14944920#comment-14944920
 ] 

ASF subversion and git services commented on JENA-1044:
-------------------------------------------------------

Commit 3b37942c71411347d5fb4d7891d2eacbeabad972 in jena's branch 
refs/heads/master from [~andy.seaborne]
[ https://git-wip-us.apache.org/repos/asf?p=jena.git;h=3b37942 ]

JENA-1044: Avoid creating an exception on the normal execution path.

> 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
>         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