Apache Ignite中的内存指标

问题描述 投票:0回答:1

这是我的代码,

    c.put((long) 1,"JP");
    ClusterGroup remoteGroup = ignite.cluster().forRemotes();
    ClusterMetrics metrics = remoteGroup.metrics();
    long iniHeap = metrics.getHeapMemoryInitialized();
    long totHeap = metrics.getHeapMemoryTotal();
    long usedHeap = metrics.getHeapMemoryUsed();
    long maxHeap = metrics.getHeapMemoryMaximum();
    System.out.println("Heap Memory used " + usedHeap );
    System.out.println("Heap Memory Total " + totHeap );
    System.out.println("Heap Memory Maximum " + maxHeap );
    System.out.println("Heap Memory Initial " + iniHeap );

    for(long i=2;i<100;i++)
    {
        c.getAndPut(i, "JP");
    }

    long iniHeap1 = metrics.getHeapMemoryInitialized();
    long totHeap1 = metrics.getHeapMemoryTotal();
    long usedHeap1 = metrics.getHeapMemoryUsed();
    long maxHeap1 = metrics.getHeapMemoryMaximum();
    System.out.println("Heap Memory used " + usedHeap1 );
    System.out.println("Heap Memory Total " + totHeap1 );
    System.out.println("Heap Memory Maximum " + maxHeap1 );
    System.out.println("Heap Memory Initial " + iniHeap1 ); 

这是我的输出,

Heap Memory used 30410944
Heap Memory Total 4246732800
Heap Memory Maximum 4246732800
Heap Memory Initial 266338304

Heap Memory used 30410944
Heap Memory Total 4246732800
Heap Memory Maximum 4246732800
Heap Memory Initial 266338304

在两种情况下(对于1个对象和100个对象)使用的堆都打印相同的值。我怎么知道这是一个对象使用的内存大小,这是100个对象使用的内存大小?

java caching memory ignite metrics
1个回答
1
投票

默认情况下,Apache Ignite不会在堆上存储对象,因此您不应依赖堆指标。

请注意,100个对象太少,无法可靠地观察任何度量标准之间的差异。

© www.soinside.com 2019 - 2024. All rights reserved.