| Index: tools/testing/perf_testing/run_perf_tests.py
|
| diff --git a/tools/testing/perf_testing/run_perf_tests.py b/tools/testing/perf_testing/run_perf_tests.py
|
| index cb3fc7420b5e3720802ba771be69f085c780c7a5..29669d9447b0fd7e838be0be3e349bf6df4f6436 100755
|
| --- a/tools/testing/perf_testing/run_perf_tests.py
|
| +++ b/tools/testing/perf_testing/run_perf_tests.py
|
| @@ -578,46 +578,49 @@ class RuntimePerformanceTest(Test):
|
| (default target is create_sdk)."""
|
| super(RuntimePerformanceTest, self).__init__(result_folder_name,
|
| platform_list, versions, benchmarks, test_runner, tester,
|
| - file_processor, self.RuntimePerfGrapher(self),
|
| + file_processor, RuntimePerfGrapher(self),
|
| build_targets=build_targets)
|
| self.platform_list = platform_list
|
| self.platform_type = platform_type
|
| self.versions = versions
|
| self.benchmarks = benchmarks
|
|
|
| - class RuntimePerfGrapher(Grapher):
|
| - def plot_all_perf(self, png_filename):
|
| - """Create a plot that shows the performance changes of individual
|
| - benchmarks run by JS and generated by frog, over svn history."""
|
| - for benchmark in self.test.benchmarks:
|
| - self.style_and_save_perf_plot(
|
| - 'Performance of %s over time on the %s on %s' % (benchmark,
|
| - self.test.platform_type, utils.GuessOS()),
|
| - 'Speed (bigger = better)', 16, 14, 'lower left',
|
| - benchmark + png_filename, self.test.platform_list,
|
| - self.test.versions, [benchmark])
|
| -
|
| - def plot_avg_perf(self, png_filename):
|
| - """Generate a plot that shows the performance changes of the geomentric
|
| - mean of JS and frog benchmark performance over svn history."""
|
| - (title, y_axis, size_x, size_y, loc, filename) = \
|
| - ('Geometric Mean of benchmark %s performance on %s ' %
|
| - (self.test.platform_type, utils.GuessOS()), 'Speed (bigger = better)',
|
| - 16, 5, 'lower left', 'avg'+png_filename)
|
| - clear_axis = True
|
| - for platform in self.test.platform_list:
|
| - for version in self.test.versions:
|
| - if self.test.is_valid_combination(platform, version):
|
| - for metric in self.test.extra_metrics:
|
| - self.style_and_save_perf_plot(title, y_axis, size_x, size_y, loc,
|
| - filename, [platform], [version],
|
| - [metric], clear_axis)
|
| - clear_axis = False
|
| -
|
| - def plot_results(self, png_filename):
|
| - self.plot_all_perf(png_filename)
|
| - self.plot_avg_perf('2' + png_filename)
|
| -
|
| +class RuntimePerfGrapher(Grapher):
|
| + def plot_all_perf(self, png_filename):
|
| + """Create a plot that shows the performance changes of individual
|
| + benchmarks run by JS and generated by frog, over svn history."""
|
| + for benchmark in self.test.benchmarks:
|
| + self.style_and_save_perf_plot(
|
| + 'Performance of %s over time on the %s on %s' % (benchmark,
|
| + self.test.platform_type, utils.GuessOS()),
|
| + 'Speed (bigger = better)', 16, 14, 'lower left',
|
| + benchmark + png_filename, self.test.platform_list,
|
| + self.test.versions, [benchmark])
|
| +
|
| + def plot_avg_perf(self, png_filename, platforms=None, versions=None):
|
| + """Generate a plot that shows the performance changes of the geomentric
|
| + mean of JS and frog benchmark performance over svn history."""
|
| + if platforms == None:
|
| + platforms = self.test.platform_list
|
| + if versions == None:
|
| + versions = self.test.versions
|
| + (title, y_axis, size_x, size_y, loc, filename) = \
|
| + ('Geometric Mean of benchmark %s performance on %s ' %
|
| + (self.test.platform_type, utils.GuessOS()), 'Speed (bigger = better)',
|
| + 16, 5, 'lower left', 'avg'+png_filename)
|
| + clear_axis = True
|
| + for platform in platforms:
|
| + for version in versions:
|
| + if self.test.is_valid_combination(platform, version):
|
| + for metric in self.test.extra_metrics:
|
| + self.style_and_save_perf_plot(title, y_axis, size_x, size_y, loc,
|
| + filename, [platform], [version],
|
| + [metric], clear_axis)
|
| + clear_axis = False
|
| +
|
| + def plot_results(self, png_filename):
|
| + self.plot_all_perf(png_filename)
|
| + self.plot_avg_perf('2' + png_filename)
|
|
|
| class BrowserTester(Tester):
|
| @staticmethod
|
| @@ -817,7 +820,7 @@ class DromaeoTester(Tester):
|
|
|
| @staticmethod
|
| def get_dromaeo_versions():
|
| - return ['js', 'frog_dom', 'frog_html']
|
| + return ['js', 'frog_dom', 'frog_html', 'dart2js_dom', 'dart2js_html']
|
|
|
|
|
| class DromaeoTest(RuntimePerformanceTest):
|
| @@ -829,6 +832,9 @@ class DromaeoTest(RuntimePerformanceTest):
|
| DromaeoTester.get_dromaeo_benchmarks(), test_runner,
|
| self.DromaeoPerfTester(self),
|
| self.DromaeoFileProcessor(self))
|
| + # TODO(vsm): These tester/grapher/processor classes should be
|
| + # cleaner to override.
|
| + self.grapher = self.DromaeoPerfGrapher(self)
|
|
|
| @staticmethod
|
| def name():
|
| @@ -839,8 +845,25 @@ class DromaeoTest(RuntimePerformanceTest):
|
| # running JS dromaeo.
|
| if browser == 'dartium' and version == 'js':
|
| return False
|
| + # Only run dart2js on Chrome until we validate it elsewhere.
|
| + if browser != 'chrome' and 'dart2js' in version:
|
| + return False
|
| return True
|
|
|
| + class DromaeoPerfGrapher(RuntimePerfGrapher):
|
| + def plot_results(self, png_filename):
|
| + self.plot_all_perf(png_filename)
|
| + self.plot_avg_perf('2' + png_filename)
|
| + self.plot_avg_perf('3' + png_filename, ['chrome', 'dartium'],
|
| + ['js', 'frog_dom', 'frog_html'])
|
| + self.plot_avg_perf('4' + png_filename, ['chrome'],
|
| + ['js', 'frog_dom', 'dart2js_dom'])
|
| + self.plot_avg_perf('5' + png_filename, ['chrome'],
|
| + ['js', 'dart2js_dom', 'dart2js_html'])
|
| + self.plot_avg_perf('6' + png_filename, ['chrome'],
|
| + ['js', 'frog_dom', 'frog_html', 'dart2js_dom',
|
| + 'dart2js_html'])
|
| +
|
| class DromaeoPerfTester(DromaeoTester):
|
| def move_chrome_driver_if_needed(self, browser):
|
| """Move the appropriate version of ChromeDriver onto the path.
|
|
|