/* * Copyright (c) 2014, 2015, Dynatrace and/or its affiliates. All rights reserved. * * This file is part of the Lock Contention Tracing Subsystem for the HotSpot * Virtual Machine, which is developed at Christian Doppler Laboratory on * Monitoring and Evolution of Very-Large-Scale Software Systems. Please * contact us at if you need additional information * or have any questions. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work. If not, see . * */ package sun.evtracing.processing.statistics; public class NumberStatistic { public static NumberStatistic merge(NumberStatistic x, NumberStatistic y) { NumberStatistic s = new NumberStatistic(); s.max = Math.max(x.max, y.max); s.count = x.count + y.count; s.sum = x.sum + y.sum; return s; } private long max; private long sum; private long count; public long getSum() { return sum; } public double getAverage() { if (count > 0) { return sum / count; } else { return Double.NaN; } } public long getMax() { return max; } public void add(long value) { max = Math.max(max, value); sum += value; count++; } }