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

Steve Lawrence resolved DAFFODIL-1786.
--------------------------------------
    Resolution: Not A Problem

I've scanned through the OOLAG code and it looks to be written pretty 
efficiently. I do not see any obvious ways to improve performance. 

Note that at least a couple of improvements have been made to OOLAG since this 
ticket was opened that may have helped with performance. For example, commit 
cf73995417 fixed an issue where OOLAG unnecessarily re-evaluated values. And 
commit 5c3b495b98 avoids copies of large lists.

 

Also note that the original issue description mentions  commenting out 
requiredEvaluations and seeing performance improvements–that is not too 
surprising since removing many of the required evaluations will obviously do 
less work. But this is likely work that needs to be done to detect things like 
SDEs and check various schema constraints. Commenting out require evaluations 
probably works fine for schemas that are known to be valid because these checks 
are known to succeed.

 

Considering improvements have been made, and the code looks reasonable 
efficient, I'm going to close this ticket. We should profile to determine 
compilation hotspots. If there are indications that OOLAG is still an issue, we 
can reopen this ticket.

> Performance: Re-evaluate OOLAG
> ------------------------------
>
>                 Key: DAFFODIL-1786
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1786
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Front End, Performance
>            Reporter: Steve Lawrence
>            Assignee: Steve Lawrence
>            Priority: Minor
>             Fix For: 4.1.0
>
>
> Profiling has showed that the OOLAG has some amount of overhead. Part of the 
> issue is that the requiredEvaluations function creates anonymous functions, 
> enormous lists, and lots of strings. Commenting out the content of 
> requiredEvaluations brought the compilation of a complex schema from ~16 
> seconds to ~13 seconds, so about a 20% decrease.
> The fact that things still works with requiredEvaluations not doing anything 
> makes me think maybe we can reevaluate how the OOLAG works and if perhaps we 
> can remove its functionality, or replace it with something much lighter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to