CosmWasm / optimizer

Dockerfile and script to deterministically produce the smallest possible Wasm for your Rust contract
Apache License 2.0
120 stars 59 forks source link

wasm-opt flags -Os vs. -Oz #95

Open webmaster128 opened 1 year ago

webmaster128 commented 1 year ago

Locally I'm testing the two optimization modes with wasm-opt version 110:

$ wasm-opt --help
  …
   -Os                                          execute default optimization 
                                                passes, focusing on code size 

   -Oz                                          execute default optimization 
                                                passes, super-focusing on code 
                                                size 
  …

For my tests, there is a difference in the order of magnitute of 1-2%:

# -Os

-rwxr-xr-x  1 me  staff  192130 16 Okt 17:27 nois_demo.wasm
-rwxr-xr-x  1 me  staff  480903 16 Okt 17:27 nois_oracle.wasm
-rwxr-xr-x  1 me  staff  225705 16 Okt 17:27 nois_proxy.wasm

# -Oz

-rwxr-xr-x  1 me  staff  189263 16 Okt 17:29 nois_demo.wasm
-rwxr-xr-x  1 me  staff  472586 16 Okt 17:29 nois_oracle.wasm
-rwxr-xr-x  1 me  staff  223632 16 Okt 17:29 nois_proxy.wasm

So for now I don't see a strong need to move away from the well established -Os.

webmaster128 commented 7 months ago

Some more example numbers from https://twitter.com/const_amit/status/1752210883156062660: GFEaE-1WYAASkrh