binary-size
/binary-size
Analizuje i zmniejsza rozmiar binariów ExecuTorch, przy badaniu rozmiaru, testach rozmiaru i optymalizacji środowiska uruchomieniowego pod urządzenia o ograniczonych zasobach.
- Autor
- pytorch ↗
- Repozytorium
- executorch ↗
- Licencja
- BSD-3-Clause
- Ostatnia zmiana repozytorium
- 27.10.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 0
Brak sygnałów. Repozytorium zmienione 27.10.2026, bez odwołań do wycofanych modeli i API.
BSD-3-Clause, otwarta.
Co robi i kiedy
Analizuje i zmniejsza rozmiar binariów ExecuTorch, przy badaniu rozmiaru, testach rozmiaru i optymalizacji środowiska uruchomieniowego pod urządzenia o ograniczonych zasobach.
Oryginalny opis (EN)
Analyze and reduce ExecuTorch binary size. Use when investigating binary size, running size tests, or optimizing the runtime for size-constrained deployments.
Jak działa
- Start from the main branch of executorch
- Build and measure baseline
- Analyze with bloaty
- Key build flags
- Constraints
- Where to look for size reductions
- For each change
Podgląd SKILL.md
--- name: binary-size description: Analyze and reduce ExecuTorch binary size. Use when investigating binary size, running size tests, or optimizing the runtime for size-constrained deployments. --- # Binary Size ## Start from the `main` branch of executorch Ask the user where the executorch repo is. ```bash git checkout main && git pull ``` ## Build and measure baseline ```bash conda activate executorch bash test/build_size_test.sh strip -o /tmp/size_test_stripped cmake-out/test/size_test strip -o /tmp/size_test_all_ops_stripped cmake-out/test/size_test_all_ops ls -la /tmp/size_test_stripped /tmp/size_test_all_ops_stripped ``` Produces two binaries: - `cmake-out/test/size_test` — ExecuTorch runtime without operator implementations - `cmake-out/test/size_test_all_ops` — ExecuTorch runtime with portable ops ## Analyze with bloaty ```bash bloaty cmake-out/test/size_test -d symbols -n 30 # by symbol bloaty cmake-out/test/size_test -d sections # by ELF section bloaty <after> -- <before> # diff two builds nm -S <binary> | sort -k2 -rn | head -30 # symbol sizes strings <binary> | less # string literals in .rodata ``` Note: `bloaty -d compileunits` requires debug info (`-g`). The Release build does not include it. ## Key build flags Set by `test/build_size_test.sh`: - `CMAKE_BUILD_TYPE=Release` - `EXECUTORCH_OPTIMIZE_SIZE=ON` — enables `-Os`, `-fno-exceptions`, `-fno-rtti`, unwind table suppression - `CXXFLAGS="-fno-exceptions -fno-rtti -Wall -Werror"` ## Constraints - Use **CMake** to build (not Buck) - **C++17 minimum** language standard - Must build on **GCC 9** (CI uses `executorch-ubuntu-22.04-gcc9-nopytorch`) and **Clang 12** — avoid compiler-specific flags or pragmas without version guards - Do not regress existing functionality — run tests for modified files - Do not change build flags in `build_size_test.sh` for size reductions - Do not increase latency in the core runtime ## Where to look for size reductions - `.text`: look for large functions, template bloat, duplicate instantiations - `.rodata`: verbose error messages, format strings, embedded file paths (`__FILE__`) - `.eh_frame`: should already be suppressed when `EXECUTORCH_OPTIMIZE_SIZE=ON` - Static init functions (`nm -S <binary> | grep GLOBAL__sub_I`): use `constexpr` constructors to constant-initialize static arrays - Logging strings: `ET_LOG_ENABLED=0` in Release eliminates format strings; ensure it propagates to consumers via `PUBLIC` compile definitions on cmake targets - Inline header functions: watch for compile-define mismatches between library and consumer TUs (e.g. `ET_LOG_ENABLED` set in library but not in consumer) ## For each change 1. Create a branch: `git checkout -b binary-size-<N>` 2. Implement, rebuild, measure stripped sizes 3. Create a separate PR — one logical change per PR 4. Record results in `binary-size-<N>.md`: | Binary | This change (N vs N-1) | Cumulative (N vs main) | |---|---|---| | `size_test` (stripped) | -X | -Y | | `size_test_all_ops` (stripped) | -X | -Y | 5. Update the CI size threshold in `.github/workflows/pull.yml` if sizes decrease
Wersje
W bazie nie ma innych skilli o nazwie binary-size.
Migawka bazy z 13.11.2026 · wersja paczki 7e3d178bf9a6 (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100binary-size-analysis
Analizuje zmiany rozmiaru binarki biblioteki hermesvm w zakresie commitów i mierzy, jak poszczególne commity wpływają na regresję rozmiaru. - 90benchmark-model-runtime
Porównuje środowiska uruchomieniowe modeli pod kątem opóźnień, przepustowości, pamięci, energii, czasu ładowania, rozmiaru i stabilności: Core AI, Core ML, MLX, ExecuTorch, PyTorch. - 100go-binary-size
Zmniejsza rozmiar skompilowanych binariów Go i obrazów kontenerów: flagi linkera, budżet inliningu, CGO i tagi buildów, osadzone zasoby, waga zależności i pomiar, co kosztuje bajty. - 90esp32-binary-size-regression
Pilnuje, by rozmiar binarki firmware ESP32 nie rósł bez kontroli, z ograniczeniami układu, analizą awarii i weryfikacją przed wydaniem. - 100executorch-kb
Przeszukuje bazę wiedzy ExecuTorch o backendach QNN, XNNPACK, Vulkan, CoreML, Arm i Cadence, recepturach kwantyzacji, pułapkach eksportu, błędach runtime i zgodności SoC. - 100pr-review
Sprawdza pull requesty w ExecuTorch pod kątem problemów, których CI nie wykryje, zwłaszcza przy zmianach w kodzie.