5

マイナー 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
    }

}

私の疑問はどこから来るのですか?使用された Tenured スペースが大きくなるアプリでは、マイナー gc 一時停止が増加することがわかりました。

いくつかのテストを行うと、jvm に option を使用させa()、別の jvm に option を使用させると、古いスペースが大きくなると、オプションを使用した jvm の一時停止時間が短くなることがb()わかりましたが、その理由はわかりません。b()

gc cpu utilization time

4096 でこのプロパティXX:ParGCCardsPerStrideChunkを使用してアプリでその問題を解決しましたが、上記の状況が gctimes の増加につながる可能性があるかどうかを知りたいのですが、gccard テーブルでのスキャンが遅くなったり、何かわからないことがあります全く関係ありません。

4

1 に答える 1