| /******************************************************************************* |
| * 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"); |
| } |
| } |