From fcea6831f3fb60dbc950fa87370d8349f2cdc48c Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 13:38:50 +0200 Subject: [PATCH 1/8] Use deterministic flushing when building web demo .rrd files --- scripts/ci/build_demo_app.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/ci/build_demo_app.py b/scripts/ci/build_demo_app.py index fb9751fd6183..920f70220dd5 100755 --- a/scripts/ci/build_demo_app.py +++ b/scripts/ci/build_demo_app.py @@ -47,8 +47,14 @@ def save(self) -> None: f"--save={rrd_path}", ] + # Configure flushing so that: + # * the resulting file size is deterministic + # * the file is chunked into small batches for better streaming + env = {**os.environ, "RERUN_FLUSH_TICK_SECS": "1000000000", "RERUN_FLUSH_NUM_BYTES": str(128 * 1024)} + subprocess.run( args + self.build_args, + env=env, check=True, ) From 2d5acb98024b81b11c2f9edfeb62d1d6007c8f0f Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 13:39:32 +0200 Subject: [PATCH 2/8] Improve output of CI size comparison Use proper unit names, and two decimals of precision --- scripts/ci/sizes.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/scripts/ci/sizes.py b/scripts/ci/sizes.py index deda26998d98..2e33dfea9636 100755 --- a/scripts/ci/sizes.py +++ b/scripts/ci/sizes.py @@ -12,7 +12,7 @@ "Wasm (release)":web_viewer/re_viewer_bg.wasm \ "Wasm (debug)":web_viewer/re_viewer_debug_bg.wasm - python3 scripts/ci/sizes.py measure --format=table \ + python3 scripts/ci/sizes.py measure --format=github \ "Wasm (release)":web_viewer/re_viewer_bg.wasm \ "Wasm (debug)":web_viewer/re_viewer_debug_bg.wasm @@ -30,7 +30,7 @@ def get_unit(size: int | float) -> str: - UNITS = ["B", "KB", "MB", "GB", "TB"] + UNITS = ["B", "kiB", "MiB", "GiB", "TiB"] unit_index = 0 while size > 1024: @@ -42,19 +42,19 @@ def get_unit(size: int | float) -> str: DIVISORS = { "B": 1, - "KB": 1024, - "MB": 1024 * 1024, - "GB": 1024 * 1024 * 1024, - "TB": 1024 * 1024 * 1024 * 1024, + "kiB": 1024, + "MiB": 1024 * 1024, + "GiB": 1024 * 1024 * 1024, + "TiB": 1024 * 1024 * 1024 * 1024, } def get_divisor(unit: str) -> int: - return DIVISORS[unit.upper()] or 1 + return DIVISORS[unit] def cell(value: float, div: float) -> str: - return str(round(value / div, 3)) + return f"{value / div:.2f}" def render_table_dict(data: list[dict[str, str]]) -> str: @@ -130,19 +130,19 @@ def compare(previous_path: str, current_path: str, threshold: float) -> None: name, f"{cell(previous, div)} {unit}", f"{cell(current, div)} {unit}", - sign + str(change) + "%", + f"{sign}{change:.2f}%", ) ) elif "current" in entry: value = entry["current"]["value"] unit = entry["current"]["unit"] - rows.append((name, "(none)", f"{value} {unit}", "+100%")) + rows.append((name, "(none)", f"{value:.2f} {unit}", "+100%")) elif "previous" in entry: value = entry["previous"]["value"] unit = entry["previous"]["unit"] - rows.append((name, f"{value} {unit}", "(deleted)", "-100%")) + rows.append((name, f"{value:.2f} {unit}", "(deleted)", "-100%")) if len(rows) > 0: sys.stdout.write(render_table_rows(rows, headers)) @@ -162,7 +162,7 @@ def measure(files: list[str], format: Format) -> None: output.append( { "name": name, - "value": str(round(size / div, 3)), + "value": str(round(size / div, 2)), "unit": unit, } ) From e8c179e4b8ce361b63f13eed972ee152589e1570 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 14:15:08 +0200 Subject: [PATCH 3/8] fix units in .yml --- .github/workflows/reusable_track_size.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/reusable_track_size.yml b/.github/workflows/reusable_track_size.yml index d25cd2b3a379..f2a3ff9ae75f 100644 --- a/.github/workflows/reusable_track_size.yml +++ b/.github/workflows/reusable_track_size.yml @@ -78,12 +78,12 @@ jobs: run: | entries=() - entries+=("Wasm:web_viewer/re_viewer_bg.wasm:MB") - entries+=("JS:web_viewer/re_viewer.js:KB") + entries+=("Wasm:web_viewer/re_viewer_bg.wasm:MiB") + entries+=("JS:web_viewer/re_viewer.js:KiB") for file in web_demo/examples/**/*.rrd; do name=$(basename $(dirname "$file")) - entries+=("$name.rrd:$file:KB") + entries+=("$name.rrd:$file:KiB") done data=$(python3 scripts/ci/sizes.py measure "${entries[@]}") From 9a534da5504d56abf12924cbff43f75da88a37eb Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 14:15:24 +0200 Subject: [PATCH 4/8] Use MiB everywhere --- scripts/ci/build_demo_app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/build_demo_app.py b/scripts/ci/build_demo_app.py index 920f70220dd5..d9c5f4e5d237 100755 --- a/scripts/ci/build_demo_app.py +++ b/scripts/ci/build_demo_app.py @@ -58,7 +58,7 @@ def save(self) -> None: check=True, ) - print(f"{rrd_path}: {os.path.getsize(rrd_path) / 1e6:.1f} MB") + print(f"{rrd_path}: {os.path.getsize(rrd_path) / (1024 * 1024):.1f} MiB") def supports_save(self) -> bool: with open(self.path) as f: From 16fef0fc67c1f2831085fd7638584cdfe7d71542 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 14:28:49 +0200 Subject: [PATCH 5/8] Fix case --- .github/workflows/reusable_track_size.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable_track_size.yml b/.github/workflows/reusable_track_size.yml index f2a3ff9ae75f..b20b409da9fa 100644 --- a/.github/workflows/reusable_track_size.yml +++ b/.github/workflows/reusable_track_size.yml @@ -79,11 +79,11 @@ jobs: entries=() entries+=("Wasm:web_viewer/re_viewer_bg.wasm:MiB") - entries+=("JS:web_viewer/re_viewer.js:KiB") + entries+=("JS:web_viewer/re_viewer.js:kiB") for file in web_demo/examples/**/*.rrd; do name=$(basename $(dirname "$file")) - entries+=("$name.rrd:$file:KiB") + entries+=("$name.rrd:$file:kiB") done data=$(python3 scripts/ci/sizes.py measure "${entries[@]}") From 8cfdde8f0800a450320f0b5c6d73bcfa16e476d4 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 15:19:24 +0200 Subject: [PATCH 6/8] don't format strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jan Procházka <1665677+jprochazk@users.noreply.github.com> --- scripts/ci/sizes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/sizes.py b/scripts/ci/sizes.py index 2e33dfea9636..eed1e51a69c2 100755 --- a/scripts/ci/sizes.py +++ b/scripts/ci/sizes.py @@ -137,7 +137,7 @@ def compare(previous_path: str, current_path: str, threshold: float) -> None: value = entry["current"]["value"] unit = entry["current"]["unit"] - rows.append((name, "(none)", f"{value:.2f} {unit}", "+100%")) + rows.append((name, "(none)", f"{value} {unit}", "+100%")) elif "previous" in entry: value = entry["previous"]["value"] unit = entry["previous"]["unit"] From 4d886f5eb28129870d8d5108cc24b27208efc329 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 15:19:32 +0200 Subject: [PATCH 7/8] don't format strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jan Procházka <1665677+jprochazk@users.noreply.github.com> --- scripts/ci/sizes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/sizes.py b/scripts/ci/sizes.py index eed1e51a69c2..a29967f0236f 100755 --- a/scripts/ci/sizes.py +++ b/scripts/ci/sizes.py @@ -142,7 +142,7 @@ def compare(previous_path: str, current_path: str, threshold: float) -> None: value = entry["previous"]["value"] unit = entry["previous"]["unit"] - rows.append((name, f"{value:.2f} {unit}", "(deleted)", "-100%")) + rows.append((name, f"{value} {unit}", "(deleted)", "-100%")) if len(rows) > 0: sys.stdout.write(render_table_rows(rows, headers)) From b709cdaca282f446d9b06cfb47d5188b614cb575 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Tue, 22 Aug 2023 16:58:42 +0200 Subject: [PATCH 8/8] Use MiB for .rrd files --- .github/workflows/reusable_track_size.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable_track_size.yml b/.github/workflows/reusable_track_size.yml index b20b409da9fa..8dd7f4d7ee80 100644 --- a/.github/workflows/reusable_track_size.yml +++ b/.github/workflows/reusable_track_size.yml @@ -83,7 +83,7 @@ jobs: for file in web_demo/examples/**/*.rrd; do name=$(basename $(dirname "$file")) - entries+=("$name.rrd:$file:kiB") + entries+=("$name.rrd:$file:MiB") done data=$(python3 scripts/ci/sizes.py measure "${entries[@]}")