speed(wrapper): opt-level=2 for the JS-interpreter crates (S5)
Some checks failed
build-apk / build-and-publish (push) Successful in 8m2s
gitleaks / scan (push) Failing after 1s

opt-level=2 (over the profile's size-first 'z') for rquickjs-sys, regex-automata
and serde_json — the QuickJS C interpreter + regex DFA + JSON parse hot paths;
bounded APK-size cost to those crates. Also carries the strawcore visionOS-OFF
outage fix into the build via the CI strawcore clone (restores muxed playback).
This commit is contained in:
Cobb 2026-07-29 08:25:47 -07:00
parent 361c9f6805
commit 5021749975

View file

@ -31,6 +31,21 @@ codegen-units = 1
panic = "unwind"
opt-level = "z"
# Per-package opt-level overrides (Straw speed audit, S5). The whole tree stays
# size-optimized ("z"), but the JS-interpreter + parsing hot paths run measurably
# slow at "z" — QuickJS's C bytecode interpreter, the regex DFA engine, and JSON
# deserialization are all tight inner loops where "z" trades real runtime for a
# few KB. Bumping ONLY these three to opt-level = 2 bounds the APK-size cost to
# these crates while restoring interpreter/parse throughput. Crate names verified
# present in Cargo.lock: rquickjs-sys (QuickJS C interpreter, compiled via cc),
# regex-automata (regex execution engine, pulled by `regex`), serde_json.
[profile.release.package.rquickjs-sys]
opt-level = 2
[profile.release.package.regex-automata]
opt-level = 2
[profile.release.package.serde_json]
opt-level = 2
# `url` crate for video-id extraction in stream.rs.
[workspace.dependencies]
url = "2"