[ 
https://issues.apache.org/jira/browse/DAFFODIL-1879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17086631#comment-17086631
 ] 

Mike Beckerle commented on DAFFODIL-1879:
-----------------------------------------

See related DAFFODIL-2325, which is just about passing by-value those arguments 
that can be, so only the ones that create circularities are by-name.

 

See also DAFFODIL-2326 which is about breaking one of the larger sources of 
circularity so that more of the arguments to RuntimeData objects do not cause 
circularity if passed by-value.

> Compilation related data structures cannot be garbage collected due to 
> RuntimeData strong references
> ----------------------------------------------------------------------------------------------------
>
>                 Key: DAFFODIL-1879
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1879
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Back End, Front End
>            Reporter: Steve Lawrence
>            Assignee: Steve Lawrence
>            Priority: Major
>
> All the *RuntimeData and DPathCompileInfo constructors accept pass-by-name 
> parameters. Some of the arguments passed into these constructors reference 
> objects that are only needed for schema compilation (e.g. dsom, grammar, 
> etc.). Because they are pass by name, these objects are strong reference and 
> thus cannot be garbage collected, leading to the entire compilation state 
> being store in memory.
> Fortunately, those parameters are marked as transient and so when serialized 
> and deserialized they are effectively garbage collected. But if one does not 
> save/reload a schema, lots of wasted memory used during schema compilation 
> will stick around. Pass-by-name parameters cannot be vars, so the simple 
> thing of making them vars and then setting to null does not work. These 
> objects should be restructured to allow them to be garbage collected once 
> compiled.



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

Reply via email to