0

システムが空のグアバキャッシュにスペースを事前に割り当てているかどうか疑問に思っていますか? 私はグアバキャッシュを初めて使用します。誰かがこの問題を理解するのを手伝ってくれますか?

また、以下のコードでテストします。

    long preMemUsage = Runtime.getRuntime().totalMemory() -Runtime.getRuntime().freeMemory();
    Cache<String, CountObject> cache = CacheBuilder.newBuilder()
        .maximumSize(12000)
        .expireAfterAccess(7200,TimeUnit.SECONDS)
        .concurrencyLevel(10)
        .recordStats().build();
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    long postMemUsage = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    System.out.println("Before: " + preMemUsage);
    System.out.println("After: " + postMemUsage);

奇妙なことは、使用済みメモリが減少したことです.....理由はわかりません。誰かがこれを説明できますか。

どうもありがとう : )

4

1 に答える 1

1

ガベージコレクターの方法は不思議です。ほとんどの場合、使用済みメモリを計算する前にガベージ コレクタを明示的に呼び出す必要があります。System.gc()計算の直前に使用するpreMemUsagepostMemUsage、より正確な結果が得られるはずです。

于 2016-11-29T21:35:58.487 に答える