/** * Copyright 2013, Landz and its contributors. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package z.testware.benchmark; import java.util.List; /** * Calculate simple statistics from multiple {@link SingleResult}s. */ final class Statistics { public Average gc; public Average evaluation; public Average blocked; public static Statistics from(List<SingleResult> results) { final Statistics stats = new Statistics(); long [] times = new long [results.size()]; // GC-times. for (int i = 0; i < times.length; i++) times[i] = results.get(i).gcTime(); stats.gc = Average.from(times); // Evaluation-only times. for (int i = 0; i < times.length; i++) times[i] = results.get(i).evaluationTime(); stats.evaluation = Average.from(times); // Thread blocked times. for (int i = 0; i < times.length; i++) times[i] = results.get(i).blockTime; stats.blocked = Average.from(times); return stats; } }