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/06/26 14:54:00 UTC

[jira] [Closed] (DAFFODIL-1447) Performance: Improve performance with VariableMap

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

Dave Thompson closed DAFFODIL-1447.
-----------------------------------

Verified the specified commit (commit 92de5ff6c75be0558edc3fe767c8d591688f425c) is included in the latest pull from the incubator-daffodil repository.

Verified the incubator-daffodil sbt test suites execute successfully.

Verified the nightly test schemas compile and save successfully.

Verified the nightly test suite executes successfully.

Verified the dfd-schema repository sbt tests execute successfully.

> Performance: Improve performance with VariableMap
> -------------------------------------------------
>
>                 Key: DAFFODIL-1447
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1447
>             Project: Daffodil
>          Issue Type: Improvement
>          Components: Back End, Front End, Performance
>    Affects Versions: 2.0.0
>            Reporter: Steve Lawrence
>            Priority: Major
>             Fix For: 2.7.0
>
>
> The hash lookups associated with finding a variable in the variable are relatively expensive, especially when looking up a variable many times. Additionally, the purely function data structure is nice, but is slow when setting variables because a new map must be created.
> So, we should chang the VariableMap data structure to just be an array of stacks, where each index in the array represents a single variable qname, and the stack represents the current instance. When a new variable instance is created we push onto the stack. When that instance goes out of scope, we pop it off. Additionally, DPath should be modified so that variable references are just an offset into this array. This should make variable access much faster with minimal allocations.



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