You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Mike Beckerle (Jira)" <ji...@apache.org> on 2021/01/21 20:53:00 UTC

[jira] [Closed] (DAFFODIL-1787) Performance: Investigate property lookups

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

Mike Beckerle closed DAFFODIL-1787.
-----------------------------------
    Resolution: Cannot Reproduce

Need profiling

> Performance: Investigate property lookups
> -----------------------------------------
>
>                 Key: DAFFODIL-1787
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1787
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Front End
>            Reporter: Steve Lawrence
>            Priority: Major
>
> For obvious reasons, we do a lot of property lookups. This needs to be made as fast as possible. It looks like we might be doing a lot of allocations when trying to find a property. I suspect part of the reason for this is that when a property isn't found, it returns a NotFound, which contains two lists of places where it looked. We end up going up the chain sometimes, creating NotFound's until we find a property, at which point the NotFounds are discarded and the Found is returned. This is very useful for diagnostics when a property isn't defined. However, many properties come form the default, so we end up creating lots of NotFound's that end up being discarded.
> Instead of gather up places looked we should have two functions. The first function just looks up the property chain for the property, and either returns an Option[String], either if found it or it didn't. If it wasn't found, then we have a second function that will gather up the places it looked to print the error message. This should help to reduce��list allocations that just get thrown away and speed up property look ups.



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