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 "End", 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)