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

Steve Lawrence resolved DAFFODIL-1877.
--------------------------------------
    Resolution: Fixed
      Assignee: Dave Thompson  (was: Steve Lawrence)

> Slow schema compilation due to unambiguous checks
> -------------------------------------------------
>
>                 Key: DAFFODIL-1877
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1877
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Front End, Performance
>            Reporter: Steve Lawrence
>            Assignee: Dave Thompson
>            Priority: Major
>             Fix For: 2.1.0
>
>
> Commit 02c8324294ed4395c1231c6ea3ec6ae77139ba46 caused ATO schema compilation 
> time to jump from about 10 seconds to over 2 minutes. Large increases were 
> also seen in VMF schema compilation.
> Some debugging showed that the cause is likely in the 
> DFDLPathExpressionCompiler. Wrapping the following code the compiles an 
> individual expression in a Timer shows an average of 9000% increase in time 
> to compile.
> ```scala
> val compiler = new DFDLPathExpressionParser[T](qn,
>  nodeInfoKind, namespaces, compileInfoWherePropertyWasLocated, 
> isEvaluatedAbove)
>  val compiledDPath = compiler.compile(expr)
>  compiledDPath
> ```
> So this most likely has something to do with schema compilation. Nothing 
> jumps out at me in the specified commit as being especially egregious to 
> cause such a performance degredation. All the really changed was passing an 
> extra parameter for error accumulation and changing how 
> isReferencedByExpressions is set. I wouldn't expect that to cause such 
> performance changes. Perhaps it is findNamedMatches now allocating a Seq?



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

Reply via email to