[perf] Include monitor layout in performance reports

Add extra key, 'monitors' to performance reports which is an
array of strings:

 *<width>x<height>+<x>+<y>

Where * marks the primary monitor.

https://bugzilla.gnome.org/show_bug.cgi?id=618189
This commit is contained in:
Owen W. Taylor 2010-05-18 19:13:56 -04:00
parent 20d579e7d8
commit e7220591ba
2 changed files with 20 additions and 1 deletions

View File

@ -148,6 +148,23 @@ function _collect(scriptModule, outputFile) {
Shell.write_string_to_stream(out, '"events":\n'); Shell.write_string_to_stream(out, '"events":\n');
Shell.PerfLog.get_default().dump_events(out); Shell.PerfLog.get_default().dump_events(out);
let monitors = global.get_monitors()
let primary = global.get_primary_monitor()
Shell.write_string_to_stream(out, ',\n"monitors":\n[');
for (let i = 0; i < monitors.length; i++) {
let monitor = monitors[i];
let is_primary = (monitor.x == primary.x &&
monitor.y == primary.y &&
monitor.width == primary.width &&
monitor.height == primary.height);
if (i != 0)
Shell.write_string_to_stream(out, ', ');
Shell.write_string_to_stream(out, '"%s%dx%d+%d+%d"'.format(is_primary ? "*" : "",
monitor.width, monitor.height,
monitor.x, monitor.y));
}
Shell.write_string_to_stream(out, ' ]');
Shell.write_string_to_stream(out, ',\n"metrics":\n[ '); Shell.write_string_to_stream(out, ',\n"metrics":\n[ ');
let first = true; let first = true;
for (let name in scriptModule.METRICS) { for (let name in scriptModule.METRICS) {

View File

@ -313,9 +313,10 @@ def run_performance_test():
finally: finally:
os.remove(output_file) os.remove(output_file)
# Grab the event definitions the first time around # Grab the event definitions and monitor layout the first time around
if i == 0: if i == 0:
events = output['events'] events = output['events']
monitors = output['monitors']
if options.perf_warmup and i == 0: if options.perf_warmup and i == 0:
continue continue
@ -344,6 +345,7 @@ def run_performance_test():
report = { report = {
'date': datetime.datetime.now().isoformat(), 'date': datetime.datetime.now().isoformat(),
'events': events, 'events': events,
'monitors': monitors,
'metrics': metric_summaries, 'metrics': metric_summaries,
'logs': logs 'logs': logs
} }