| Index: mojo/devtools/common/mojo_benchmark
|
| diff --git a/mojo/devtools/common/mojo_benchmark b/mojo/devtools/common/mojo_benchmark
|
| index 9b2426877958e52a2b04d960f46f89ca5d1ac230..476b8e3449a0d6d501ec99ea9d51dd70bbdecfdf 100755
|
| --- a/mojo/devtools/common/mojo_benchmark
|
| +++ b/mojo/devtools/common/mojo_benchmark
|
| @@ -9,6 +9,7 @@ import argparse
|
| import logging
|
| import sys
|
| import time
|
| +import os.path
|
|
|
| from devtoolslib import shell_arguments
|
| from devtoolslib import shell_config
|
| @@ -53,8 +54,16 @@ _NETWORK_SERVICE_URL = 'mojo:network_service'
|
| _EXTRA_TIMEOUT = 20
|
|
|
|
|
| +def _get_output_file(shell, name, cold_start):
|
| + file_name = 'benchmark-%s-%s-%s.trace' % (
|
| + name.replace(' ', '_'),
|
| + 'cold_start' if cold_start else 'warm_start',
|
| + time.strftime('%Y%m%d%H%M%S'))
|
| + return file_name
|
| +
|
| +
|
| def _run_benchmark(shell, shell_args, name, app, duration_seconds, measurements,
|
| - cold_start, verbose, save_traces):
|
| + cold_start, verbose, android, save_traces):
|
| """Runs `benchmark.mojo` in shell with correct arguments, parses and
|
| presents the benchmark results.
|
| """
|
| @@ -62,12 +71,16 @@ def _run_benchmark(shell, shell_args, name, app, duration_seconds, measurements,
|
| benchmark_args = []
|
| benchmark_args.append('--app=' + app)
|
| benchmark_args.append('--duration=' + str(duration_seconds))
|
| +
|
| + output_file = None
|
| + device_output_file = None
|
| if save_traces:
|
| - trace_output_file = 'benchmark-%s-%s-%s.trace' % (
|
| - name.replace(' ', '_'),
|
| - 'cold_start' if cold_start else 'warm_start',
|
| - time.strftime('%Y%m%d%H%M%S'))
|
| - benchmark_args.append('--trace-output=' + trace_output_file)
|
| + output_file = _get_output_file(shell, name, cold_start)
|
| + if android:
|
| + device_output_file = os.path.join(shell.get_tmp_dir_path(), output_file)
|
| + benchmark_args.append('--trace-output=' + device_output_file)
|
| + else:
|
| + benchmark_args.append('--trace-output=' + output_file)
|
|
|
| for measurement in measurements:
|
| benchmark_args.append(measurement)
|
| @@ -102,6 +115,9 @@ def _run_benchmark(shell, shell_args, name, app, duration_seconds, measurements,
|
| for line in output_lines:
|
| if line.strip().startswith('measurement:') or 'WARNING' in line:
|
| print line
|
| +
|
| + if device_output_file:
|
| + shell.pull_file(device_output_file, output_file, remove_original=True)
|
| return True
|
|
|
|
|
| @@ -139,9 +155,11 @@ def main():
|
| measurements = benchmark_spec['measurements']
|
| _run_benchmark(shell, shell_args, name, app, duration, measurements,
|
| cold_start=True, verbose=script_args.verbose,
|
| + android=script_args.android,
|
| save_traces=script_args.save_traces)
|
| _run_benchmark(shell, shell_args, name, app, duration, measurements,
|
| cold_start=False, verbose=script_args.verbose,
|
| + android=script_args.android,
|
| save_traces=script_args.save_traces)
|
|
|
| return 0 if succeeded else 1
|
|
|