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

Joseph Witt commented on NIFI-5801:
-----------------------------------

[~markap14] since this appears to be improvement only and not about a defect 
and since there is no review traction I've removed the fix version.  It looks 
promising so lets not lose track.  let me know if a problem. thanks

> Evaluating Expression Language can in many cases be made much more efficient
> ----------------------------------------------------------------------------
>
>                 Key: NIFI-5801
>                 URL: https://issues.apache.org/jira/browse/NIFI-5801
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Core Framework
>            Reporter: Mark Payne
>            Assignee: Mark Payne
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a StandardPropertyValue is obtained and evaluateAttributeExpressions is 
> called, it builds the entire Evaluator Tree each time. This was done to 
> ensure that Evaluator.evaluate() is called only once. However, the 
> requirement to call this only once was introduced as a way to have 
> anyMatchingAttribute, anyAttribute, allMatchingAttributes, allAttributes, 
> etc. methods work, and these are rarely used. I.e., we introduced semantics 
> that significantly slow performance in order to provide functionality that is 
> used maybe 1% of the time. Instead, we should optimize for the 99% use case 
> and incur a penalty, if necessary, in the 1% use case instead. Profiling the 
> ConsumeKafkaRecord processor shows that 80% of the time in that method is 
> evaluating Expression Language for `${schema.name}` to determine which schema 
> should be used. We can likely make this evaluation just as quick as 
> attributeMap.get("schema.name") by pre-building the Evaluators and re-using 
> them.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to