You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by jwagenleitner <gi...@git.apache.org> on 2016/05/01 22:42:18 UTC

[GitHub] groovy pull request: GROOVY-7646 - Classes generated by Eval() nev...

GitHub user jwagenleitner opened a pull request:

    https://github.com/apache/groovy/pull/325

    GROOVY-7646 - Classes generated by Eval() never collected from Permgen/Metaspace

    This is also fixed by PR #219 but that requires SoftReferences to be collected (because of beaninfocache).   It seems for cases where a Script class is parsed, executed for its result and the Script class is not retained we can be more aggressive about clearing it from caches so it doesn't require the heap to fill before being collected.
    
    A test is included just to demonstrate the changes do allow the classes to be GC'd but is not a test that is meant to be included if the PR is accepted.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jwagenleitner/groovy GROOVY-7646

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/groovy/pull/325.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #325
    
----
commit 7418b3d7ebd324e0d24c63746e884db632a313d9
Author: John Wagenleitner <jw...@apache.org>
Date:   2016-05-01T19:55:44Z

    GROOVY-7646 - Classes generated by Eval() never collected from Permgen/Metaspace
    
    In cases where a Script class is generated just to obtain a result and the Class is not retained, the Class should be removed from the ClassInfo cache and beanInfoCache in order to allow it to be GC'd.  Otherwise in environments where scripts are repeated executed memory will continue to be consumed by these classes because beanInfoCache retains soft references to the classes.

commit b708bf8585482cc2bd2739e13eda74c9818d77a6
Author: John Wagenleitner <jw...@apache.org>
Date:   2016-05-01T19:57:25Z

    GROOVY-7646 - test
    
    Just to demonstrate this allows GC of the parsed script classes, it should not be included if the PR is accepted.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] groovy pull request #325: GROOVY-7646 - Classes generated by Eval() never co...

Posted by jwagenleitner <gi...@git.apache.org>.
Github user jwagenleitner closed the pull request at:

    https://github.com/apache/groovy/pull/325


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---