blob: 1720a96f5f7d56da4ee1ae6eb401b9765859c9a3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.core.tests.performance.util;
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import org.eclipse.test.internal.performance.PerformanceTestPlugin;
import org.eclipse.test.internal.performance.data.Dim;
import org.eclipse.test.internal.performance.db.DB;
import org.eclipse.test.internal.performance.db.Report;
import org.eclipse.test.internal.performance.db.Scenario;
import org.eclipse.test.internal.performance.db.TimeSeries;
import org.eclipse.test.internal.performance.db.Variations;
/**
* Dumps performance data to stdout.
*/
public class View {
public static void main(String[] args) {
Variations variations = PerformanceTestPlugin.getVariations();
variations.put("config", "eclipseperflnx1_R3.3"); //$NON-NLS-1$//$NON-NLS-2$
variations.put("build", "I2007%"); //$NON-NLS-1$//$NON-NLS-2$
variations.put("jvm", "sun"); //$NON-NLS-1$//$NON-NLS-2$
String scenarioPattern = "%testFullBuildProject%"; //$NON-NLS-1$
String seriesKey = PerformanceTestPlugin.BUILD;
String outFile = null;
if (args != null && args.length > 0) {
outFile = args[0];
}
// outFile= "/tmp/dbdump"; //$NON-NLS-1$
PrintStream ps = null;
if (outFile != null) {
try {
ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(outFile)));
} catch (FileNotFoundException e) {
System.err.println("can't create output file"); //$NON-NLS-1$
}
}
if (ps == null)
ps = System.out;
Scenario[] scenarios = DB.queryScenarios(variations, scenarioPattern, seriesKey, null);
System.out.println(scenarios.length + " Scenarios"); //$NON-NLS-1$
System.out.println();
for (int s = 0; s < scenarios.length; s++)
dump(ps, scenarios[s]);
if (ps != System.out)
ps.close();
}
private static void dump(PrintStream ps, Scenario scenario) {
// scenario.dump(ps, PerformanceTestPlugin.BUILD);
System.out.print("Scenario: " + scenario.getScenarioName()+"..."); //$NON-NLS-1$
ps.println("Scenario: " + scenario.getScenarioName()); //$NON-NLS-1$
Report r = new Report(2);
String[] timeSeriesLabels = scenario.getTimeSeriesLabels();
r.addCell(PerformanceTestPlugin.BUILD + ":"); //$NON-NLS-1$
for (int j = 0; j < timeSeriesLabels.length; j++)
r.addCellRight(timeSeriesLabels[j]);
r.nextRow();
Dim[] dimensions = scenario.getDimensions();
for (int i = 0; i < dimensions.length; i++) {
Dim dim = dimensions[i];
String dimName = dim.getName();
if (!dimName.equals("CPU Time") && !dimName.equals("Elapsed Process") && !dimName.equals("Used Java Heap")) {
continue;
}
r.addCell(dimName + ':');
TimeSeries ts = scenario.getTimeSeries(dim);
int n = ts.getLength();
for (int j = 0; j < n; j++) {
String stddev = ""; //$NON-NLS-1$
double stddev2 = ts.getStddev(j);
if (stddev2 != 0.0)
stddev = " [" + dim.getDisplayValue(stddev2) + "]"; //$NON-NLS-1$ //$NON-NLS-2$
r.addCellRight(dim.getDisplayValue(ts.getValue(j)) + stddev);
}
r.nextRow();
}
r.print(ps);
ps.println();
System.out.println("done");
}
}