当前位置:  开发笔记 > 编程语言 > 正文

可以增加gc time引用了旧对象的短命对象吗?

如何解决《可以增加gctime引用了旧对象的短命对象吗?》经验,为你挑选了0个好方法。

我需要一些关于次要gc集合行为的澄清。调用a()或调用b()寿命长的应用程序,如果它们在旧空间变大时表现最差

//an example instance lives all application life cycle 24x7
public class Example {

    private Object longLived = new Object(); 

    public void a(){
        var shortLived = new ShortLivedObject(longLived); // longLived now is attribute
        shortLived.doSomething();
    }


    public void b(){
       new ShortLivedObject().doSomething(new Object()); // actually now is shortlived
    }

}

我的疑惑来自何处?我发现,在使用的使用权空间变大的应用程序中,gc暂停次数增加了。

做一些测试,我发现如果我强迫jvm使用option,a()而另一个jvm使用option b(),则b()当旧空间变大时,带有option的jvm的暂停持续时间较短,但我不知道为什么。

我使用4096中的此属性XX:ParGCCardsPerStrideChunk在应用程序中解决了该问题,但我想知道上述情况是否会导致gctimes增大,从而导致gccard表中的扫描速度变慢或我不知道或正在完全没有关系。

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有