以编程方式了解java对象创建速率

以编程方式了解java对象创建速率,java,garbage-collection,Java,Garbage Collection,有没有办法以编程方式获得java对象创建速率? 或者,到目前为止创建的对象的总大小,不考虑垃圾收集 比如 int size = GC.getSizeTotalObjectCreated(); // do some object creation int size2 = GC.getSizeTotalObjectCreated(); System.out.println("TotalObjectCreated" + (size2 - size)); 使用MemoryPoolMXBean堆大

有没有办法以编程方式获得java对象创建速率? 或者,到目前为止创建的对象的总大小,不考虑垃圾收集

比如

int size = GC.getSizeTotalObjectCreated();

// do some object creation

int size2 = GC.getSizeTotalObjectCreated();

System.out.println("TotalObjectCreated" + (size2 - size));

使用MemoryPoolMXBean堆大小可以与Eden/Survivor/Old Gen的使用详细信息一起找到

可以根据给定两个时间点的空闲堆大小差异来计算对象创建速率

public void printHeapDetails() {        
    System.out.println("Heap size: " + Runtime.getRuntime().totalMemory());
    System.out.println("Free heap size: "
            + Runtime.getRuntime().freeMemory());

    for (MemoryPoolMXBean bean : ManagementFactory.getMemoryPoolMXBeans()) {
        if (bean.getType() == MemoryType.HEAP)
            System.out.printf("Name: %s: %s\n", bean.getName(),
                    bean.getUsage());
    }
}

使用MemoryPoolMXBean堆大小可以与Eden/Survivor/Old Gen的使用详细信息一起找到

可以根据给定两个时间点的空闲堆大小差异来计算对象创建速率

public void printHeapDetails() {        
    System.out.println("Heap size: " + Runtime.getRuntime().totalMemory());
    System.out.println("Free heap size: "
            + Runtime.getRuntime().freeMemory());

    for (MemoryPoolMXBean bean : ManagementFactory.getMemoryPoolMXBeans()) {
        if (bean.getType() == MemoryType.HEAP)
            System.out.printf("Name: %s: %s\n", bean.getName(),
                    bean.getUsage());
    }
}

,请参阅。您是想要比率还是要测量尺寸?这是两件不同的事情。价格交易w/次。我想你不是在问这个,我是说价格。但是大小也一样可以,因为处理时间不会那么困难。看。你想要速率还是测量大小?这是两件不同的事情。价格交易w/次。我想你不是在问这个,我是说价格。但是尺寸也一样可以,因为处理时间不会那么难。谢谢你的回答。但这并不是我真正想要的。如果垃圾收集发生在测量的中间,它会给出错误的值。谢谢你的回答。但这并不是我真正想要的。如果垃圾收集发生在测量的中间,它会给出错误的值。