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