You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Josh Adams (Jira)" <ji...@apache.org> on 2020/05/19 14:14:00 UTC

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

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

Josh Adams reassigned DAFFODIL-1447:
------------------------------------

    Assignee: Josh Adams

> 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
>            Assignee: Josh Adams
>            Priority: Major
>
> 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)