Skip to content

Optimization: Reduce GUI release binary artifact size #1162

Description

@Tyrell04

Problem

The raw GUI release binary is currently quite large (approximately 66.8 MB on macOS ARM64), which leads to unnecessarily large downloads and slower updates for users.

Proposed Direction

I want to propose optimizing the GUI release artifacts to significantly reduce the footprint, without altering any swap behavior, core logic, or persistence formats.

Based on a local proof of concept, we can achieve substantial size reductions through:

  1. Optimizing the Cargo release profile specifically for the GUI (opt-level = "z").
  2. Enabling symbol stripping (strip = "symbols") for the GUI binary.
  3. Converting heavy static image assets (specifically the introduction slides) from PNG to WebP.

Scope & Scope Boundaries

  • Target: These optimizations strictly target the GUI release artifacts.
  • Exclusions: CLI and ASB size options, profiles, and their debug symbols/backtraces will remain entirely untouched.
  • Platform Questions: While local measurements focus on macOS, I would like to ask the maintainers for their thoughts on applying the optimized profile configurations to Linux and Windows builds as well.

Expected Results (Data from Local PoC)

Isolating these changes on a controlled base commit yields the following improvements for the raw macOS ARM64 executable:

  • Binary Size: ~66.8 MB $\rightarrow$ ~35.0 MB (a reduction of ~47.6%)
  • Affected Image Assets: ~3.9 MB $\rightarrow$ ~101 KB (a reduction of ~97.4%)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions