You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Dave Thompson (Jira)" <ji...@apache.org> on 2020/02/20 20:09:00 UTC

[jira] [Closed] (DAFFODIL-1444) Performance - schema compilation

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

Dave Thompson closed DAFFODIL-1444.
-----------------------------------

Verified the specified commit (commit 7e8e1b3ed110efe939908cdf1e12df50d1f86527) was included in the latest pull from the incubator-daffodil repo.

Verified that all data format schemas compiled and saved parsers generated successfully (ATO and HL7 after DAFFODIL_JAVA_OPTS for 4mb stack segments).

Verified that the nightly tests run with a few repeatable failures. These will be addressed in a separate Jira ticket.

Verified that 11 of the 27 data format schemas had minor to exceptional reduced compile times.

> Performance - schema compilation
> --------------------------------
>
>                 Key: DAFFODIL-1444
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1444
>             Project: Daffodil
>          Issue Type: Improvement
>          Components: Front End, Middle &quot;End&quot;, Performance
>            Reporter: Mike Beckerle
>            Assignee: Mike Beckerle
>            Priority: Major
>             Fix For: 2.6.0
>
>         Attachments: Daffodil-exponential-component-growth.xlsx
>
>          Time Spent: 4.5h
>  Remaining Estimate: 0h
>
> Large DFDL schemas are very slow to compile.
> We could focus on speeding this up, and should get some low-hanging fruit here.
> But ultimately, a really large DFDL schema needs to be compiled in pieces. (DEBATABLE - focus should FIRST be on speeding up and reducing the massive copying that goes on. Separate compilation is a harder issue that we can defer.)
> This means we need to be able to reload a compiled schema just to restore it's parsers/unparsers and associated runtime data structures to memory so that another schema that depends on it can then be compiled. 
> DFDL schema compilation needs to be understood in order to decompose a schema into separately compilable units. THere's no point in trying to compile a schema layer by layer - a DFDL schema containing all type definitions, for example, doesn't compile to anything. There have to be top level elements in order for DFDL schema compilation to do anything.
> So given a large data format with many top-level element types, we need the compiler to recognize element references to pre-compiled top-level elements, and avoid recompiling new instances of them if the surrounding environment is the same. That is, surrounding default format specification is the same.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)