Chromium Code Reviews| 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..8f518790d94ebbf0f30f3b40c7264290382fe461 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,20 @@ 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']) |
|
Emily Fortuna
2012/05/22 22:40:27
80 char here and below
vsm
2012/05/22 23:05:06
Done.
|
| + 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. |