All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.carrotsearch.junitbenchmarks.GCSnapshot Maven / Gradle / Ivy

Go to download

A framework for writing performance micro-benchmarks using JUnit4 annotations, forked from https://github.com/carrotsearch/junit-benchmarks.

There is a newer version: 0.7.4-scijava
Show newest version
package com.carrotsearch.junitbenchmarks;

import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.List;

/**
 * Snapshot of GC activity (cumulative for all GC types).
 */
public final class GCSnapshot
{
    private static List garbageBeans = ManagementFactory
        .getGarbageCollectorMXBeans();

    private long [] gcInvocations = new long [garbageBeans.size()];
    private long [] gcTimes = new long [garbageBeans.size()];

    GCSnapshot()
    {
        for (int i = 0; i < gcInvocations.length; i++)
        {
            gcInvocations[i] = garbageBeans.get(i).getCollectionCount();
            gcTimes[i] = garbageBeans.get(i).getCollectionTime();
        }
    }

    public long accumulatedInvocations()
    {
        long sum = 0;
        int i = 0;
        for (GarbageCollectorMXBean bean : garbageBeans)
        {
            sum += bean.getCollectionCount() - gcInvocations[i++];
        }
        return sum;
    }

    public long accumulatedTime()
    {
        long sum = 0;
        int i = 0;
        for (GarbageCollectorMXBean bean : garbageBeans)
        {
            sum += bean.getCollectionTime() - gcTimes[i++];
        }
        return sum;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy