diff --git a/scripts/lib/build_perf/html/measurement_chart_d3billboard.html b/scripts/lib/build_perf/html/measurement_chart_d3billboard.html index d04abe3af1d..f97a43eacf7 100644 --- a/scripts/lib/build_perf/html/measurement_chart_d3billboard.html +++ b/scripts/lib/build_perf/html/measurement_chart_d3billboard.html @@ -1,36 +1,90 @@ diff --git a/scripts/lib/build_perf/html/report.html b/scripts/lib/build_perf/html/report.html index 2fad07d9a33..1df211314e5 100644 --- a/scripts/lib/build_perf/html/report.html +++ b/scripts/lib/build_perf/html/report.html @@ -4,7 +4,7 @@ {# Scripts, for visualization#} - + {# Render measurement result charts #} @@ -26,23 +26,15 @@ text-align: left; border-collapse: collapse; } -.meta-table tr:nth-child(even){background-color: #f2f2f2} -meta-table th, .meta-table td { - padding: 4px; -} .summary { - margin: 0; font-size: 14px; text-align: left; border-collapse: collapse; } -summary th, .meta-table td { - padding: 4px; -} .measurement { padding: 8px 0px 8px 8px; border: 2px solid #f0f0f0; - margin-bottom: 10px; + margin: 1.5rem 0; } .details { margin: 0; @@ -62,18 +54,58 @@ background-color: #f0f0f0; margin-left: 10px; } -hr { - color: #f0f0f0; +.card-container { + border-bottom-width: 1px; + padding: 1.25rem 3rem; + box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + border-radius: 0.25rem; +} +body { + font-family: 'Helvetica', sans-serif; + margin: 3rem 8rem; +} +h1 { + text-align: center; } h2 { - font-size: 20px; + font-size: 1.5rem; margin-bottom: 0px; color: #707070; + padding-top: 1.5rem; } h3 { - font-size: 16px; + font-size: 1.3rem; margin: 0px; color: #707070; + padding: 1.5rem 0; +} +h4 { + font-size: 14px; + font-weight: lighter; + line-height: 1.2rem; + margin: auto; + padding-top: 1rem; +} +table { + margin-top: 1.5rem; + line-height: 2rem; +} +tr { + border-bottom: 1px solid #e5e7eb; +} +tr:first-child { + border-bottom: 1px solid #9ca3af; +} +tr:last-child { + border-bottom: none; +} +a { + text-decoration: none; + font-weight: bold; + color: #0000EE; +} +a:hover { + color: #8080ff; } @@ -81,13 +113,14 @@ {% macro poky_link(commit) -%} - {{ commit[0:11] }} + {{ commit[0:11] }} {%- endmacro %} -
+
+

Performance Test Report

{# Test metadata #}

General

-
+

The table provides an overview of the comparison between two selected commits from the same branch.

@@ -110,19 +143,21 @@

General

{# Test result summary #}

Test result summary

-
+

The test summary presents a thorough breakdown of each test conducted on the branch, including details such as build time and disk space consumption. Additionally, it gives insights into the average time taken for test execution, along with absolute and relative values for a better understanding.

+ + + + + + + {% for test in test_data %} - {% if loop.index is even %} - {% set row_style = 'style="background-color: #f2f2f2"' %} - {% else %} - {% set row_style = 'style="background-color: #ffffff"' %} - {% endif %} {% if test.status == 'SUCCESS' %} {% for measurement in test.measurements %} {% if loop.index == 1 %} - + {% else %} {# add empty cell in place of the test name#} @@ -151,10 +186,12 @@

Test result summary

Test nameMeasurement descriptionMean valueAbsolute differenceRelative difference
{{ test.name }}: {{ test.description }}{{ test.name }}: {{ test.description }}
{# Detailed test results #} +

Test details

+

The following section provides details of each test, accompanied by charts representing build time and disk usage over time or by commit number.

{% for test in test_data %} -

{{ test.name }}: {{ test.description }}

-
+

{{ test.name }}: {{ test.description }}

{% if test.status == 'SUCCESS' %} +
{% for measurement in test.measurements %}

{{ measurement.description }}

@@ -273,7 +310,8 @@

{{ measurement.description }}

{% endif %} {% endif %}
- {% endfor %} + {% endfor %} +
{# Unsuccessful test #} {% else %} {{ test.status }} @@ -284,4 +322,3 @@

{{ measurement.description }}

{% endfor %}
- diff --git a/scripts/lib/build_perf/report.py b/scripts/lib/build_perf/report.py index ab77424cc74..f18673cd292 100644 --- a/scripts/lib/build_perf/report.py +++ b/scripts/lib/build_perf/report.py @@ -294,7 +294,7 @@ def gv_value(self): return "null" return self / 1024 -def measurement_stats(meas, prefix=''): +def measurement_stats(meas, prefix='', time=0): """Get statistics of a measurement""" if not meas: return {prefix + 'sample_cnt': 0, @@ -304,7 +304,8 @@ def measurement_stats(meas, prefix=''): prefix + 'min': MeasurementVal('nan'), prefix + 'max': MeasurementVal('nan'), prefix + 'minus': MeasurementVal('nan'), - prefix + 'plus': MeasurementVal('nan')} + prefix + 'plus': MeasurementVal('nan'), + prefix + 'start_time': MeasurementVal('nan')} stats = {'name': meas['name']} if meas['type'] == 'sysres': @@ -319,6 +320,7 @@ def measurement_stats(meas, prefix=''): stats['quantity'] = val_cls.quantity stats[prefix + 'sample_cnt'] = len(values) + start_time = time # Add start time for both type sysres and disk usage mean_val = val_cls(mean(values)) min_val = val_cls(min(values)) max_val = val_cls(max(values)) @@ -334,6 +336,7 @@ def measurement_stats(meas, prefix=''): stats[prefix + 'max'] = max_val stats[prefix + 'minus'] = val_cls(mean_val - min_val) stats[prefix + 'plus'] = val_cls(max_val - mean_val) + stats[prefix + 'start_time'] = start_time return stats diff --git a/scripts/oe-build-perf-report b/scripts/oe-build-perf-report index 7812ea45407..266700d2945 100755 --- a/scripts/oe-build-perf-report +++ b/scripts/oe-build-perf-report @@ -336,7 +336,9 @@ def print_html_report(data, id_comp, buildstats): test_i = test_data['tests'][test] meas_i = test_i['measurements'][meas] commit_num = get_data_item(meta, 'layers.meta.commit_count') - samples.append(measurement_stats(meas_i)) + # Add start_time for both test measurement types of sysres and disk usage + start_time = test_i['start_time'][0] + samples.append(measurement_stats(meas_i, '', start_time)) samples[-1]['commit_num'] = commit_num absdiff = samples[-1]['val_cls'](samples[-1]['mean'] - samples[id_comp]['mean']) @@ -473,7 +475,7 @@ Examine build performance test results from a Git repository""" group.add_argument('--branch', '-B', default='master', help="Branch to find commit in") group.add_argument('--branch2', help="Branch to find comparision revisions in") group.add_argument('--machine', default='qemux86') - group.add_argument('--history-length', default=25, type=int, + group.add_argument('--history-length', default=300, type=int, help="Number of tested revisions to plot in html report") group.add_argument('--commit', help="Revision to search for")