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:
- Optimizing the Cargo release profile specifically for the GUI (
opt-level = "z").
- Enabling symbol stripping (
strip = "symbols") for the GUI binary.
- 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%)
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:
opt-level = "z").strip = "symbols") for the GUI binary.Scope & Scope Boundaries
Expected Results (Data from Local PoC)
Isolating these changes on a controlled base commit yields the following improvements for the raw macOS ARM64 executable: