| perf(engine): release 体积优化 #1/#3——strip symtab + -Oz/ICF/ThinLTO(HAR 6.98→5.74MB) #1 strip .symtab/.strtab(Release 门控 POST_BUILD llvm-objcopy): - 删除静态符号表(约占 .so 26-33%),保留全部 DWARF(.debug_*)—— llvm-symbolizer/llvm-addr2line 崩溃符号化与 llvm-nm -D 锚点验证均不受影响 - debug 构建不裁剪,本地调试体验不变 #3 -Oz + --icf=all + ThinLTO(仅 OHOS+Release;Android/debug 不受影响): - compiler_toolchain.cmake:COMPILE_OPTIONS 中 -Os → -Oz + -flto=thin (target 级选项位于命令行后端,覆盖工具链注入的 -O2) - flexui_impl 源文件对齐(-Oz -flto=thin,此前走工具链默认 -O2) - 顶层 .so 链接追加 -Wl,--icf=all + -flto=thin:跨静态库 (footstone/dom/js_driver/devtools_backend)死代码消除 + 重复代码折叠; 非 LTO 对象(taitank/第三方预编译)自动退化为普通链接,混合链接合法 真机回归:./build.sh test-engine all 42/44 通过(2 个已知失败与构建无关: card-complex-render 为用例顺序交互,promise-reject-stack-policy 断言面向 debug 符号产物)。 体积:HAR 6.98MB→5.74MB(-17.8%);arm64 .so raw 11.90→7.19MB、 .text 2733→1792KB(-34%)、gz 3238→2569KB;x86_64 同步受益。 | 17 天前 |