Skip to content

v1.7.3

Compare
Choose a tag to compare
@github-actions github-actions released this 11 Jun 18:24
· 56 commits to main since this release
8b3af37

Time to celebrate the new wazero release! This time has not only the important bugs fixes just like before, but more importantly comes with the drastic "compilation time" performance improvements!

Bug fixes

Compilation perf improvements

@mathetake worked so hard to improve the compilation performance which some users had raised issue about since the release of the optimizing compiler in 1.7.0. The idea is that even though this is partly because it is "optimizing", there are still rooms for improvements in its codebase to use less CPU/memory.

The below is the compilation time benchmark on the various standard library tests for Zig, Go and TinyGo compared to the previous v1.7.2. You can see the huge results up to like 50% faster and ~50% less memory usage. Note that this doesn't affect any runtime performance -- that means your code runs just exactly like before while having faster compilation!😎

goos: darwin
goarch: arm64
pkg: github.com/tetratelabs/wazero/internal/integration_test/stdlibs
                                                   │   old.txt    │              new.txt               │
                                                   │    sec/op    │   sec/op     vs base               │
Zig/Compile/test-opt.wasm-10                           4.872 ± 2%    3.389 ± 3%  -30.44% (p=0.001 n=7)
Zig/Compile/test.wasm-10                               5.926 ± 2%    4.162 ± 1%  -29.76% (p=0.001 n=7)
TinyGo/Compile/container_heap.test-10                 677.2m ± 0%   306.3m ± 1%  -54.76% (p=0.001 n=7)
TinyGo/Compile/container_list.test-10                 673.2m ± 1%   309.3m ± 8%  -54.05% (p=0.001 n=7)
TinyGo/Compile/container_ring.test-10                 665.1m ± 1%   299.5m ± 0%  -54.97% (p=0.001 n=7)
TinyGo/Compile/crypto_des.test-10                     686.4m ± 0%   311.6m ± 0%  -54.61% (p=0.001 n=7)
TinyGo/Compile/crypto_md5.test-10                     685.5m ± 1%   312.7m ± 4%  -54.38% (p=0.001 n=7)
TinyGo/Compile/crypto_rc4.test-10                     666.5m ± 0%   297.9m ± 0%  -55.31% (p=0.001 n=7)
TinyGo/Compile/crypto_sha1.test-10                    683.7m ± 0%   310.1m ± 0%  -54.65% (p=0.001 n=7)
TinyGo/Compile/crypto_sha256.test-10                  692.0m ± 1%   315.0m ± 2%  -54.48% (p=0.001 n=7)
TinyGo/Compile/crypto_sha512.test-10                  692.7m ± 0%   316.6m ± 1%  -54.29% (p=0.001 n=7)
TinyGo/Compile/encoding_ascii85.test-10               680.6m ± 1%   309.3m ± 1%  -54.55% (p=0.001 n=7)
TinyGo/Compile/encoding_base32.test-10               1637.6m ± 1%   650.8m ± 0%  -60.26% (p=0.001 n=7)
TinyGo/Compile/encoding_csv.test-10                   740.0m ± 1%   333.5m ± 0%  -54.92% (p=0.001 n=7)
TinyGo/Compile/encoding_hex.test-10                   708.7m ± 3%   320.9m ± 0%  -54.72% (p=0.001 n=7)
TinyGo/Compile/go_scanner.test-10                     773.2m ± 1%   347.1m ± 6%  -55.11% (p=0.001 n=7)
TinyGo/Compile/hash.test-10                           951.8m ± 1%   410.8m ± 0%  -56.84% (p=0.001 n=7)
TinyGo/Compile/hash_adler32.test-10                   665.8m ± 1%   297.5m ± 0%  -55.32% (p=0.001 n=7)
TinyGo/Compile/hash_crc64.test-10                     893.9m ± 1%   385.1m ± 1%  -56.92% (p=0.001 n=7)
TinyGo/Compile/hash_fnv.test-10                       695.8m ± 2%   312.4m ± 0%  -55.10% (p=0.001 n=7)
TinyGo/Compile/html.test-10                            2.426 ± 1%    2.012 ± 1%  -17.07% (p=0.001 n=7)
TinyGo/Compile/internal_itoa.test-10                  662.5m ± 1%   296.0m ± 1%  -55.32% (p=0.001 n=7)
TinyGo/Compile/internal_profile.test-10               893.6m ± 1%   417.9m ± 0%  -53.24% (p=0.001 n=7)
TinyGo/Compile/math.test-10                           821.1m ± 0%   398.4m ± 0%  -51.48% (p=0.001 n=7)
TinyGo/Compile/math_cmplx.test-10                     701.7m ± 0%   338.8m ± 1%  -51.71% (p=0.001 n=7)
TinyGo/Compile/net.test-10                            755.4m ± 1%   356.5m ± 3%  -52.81% (p=0.001 n=7)
TinyGo/Compile/net_http_internal_ascii.test-10        661.5m ± 1%   296.8m ± 2%  -55.14% (p=0.001 n=7)
TinyGo/Compile/net_mail.test-10                       927.1m ± 2%   398.9m ± 2%  -56.97% (p=0.001 n=7)
TinyGo/Compile/os.test-10                             754.9m ± 0%   370.5m ± 0%  -50.92% (p=0.001 n=7)
TinyGo/Compile/path.test-10                           677.1m ± 1%   305.5m ± 1%  -54.88% (p=0.001 n=7)
TinyGo/Compile/reflect.test-10                        842.3m ± 3%   416.7m ± 1%  -50.53% (p=0.001 n=7)
TinyGo/Compile/sync.test-10                           693.8m ± 4%   315.3m ± 2%  -54.55% (p=0.001 n=7)
TinyGo/Compile/testing.test-10                        766.8m ± 6%   338.6m ± 0%  -55.85% (p=0.001 n=7)
TinyGo/Compile/testing_iotest.test-10                 717.6m ± 2%   322.7m ± 0%  -55.03% (p=0.001 n=7)
TinyGo/Compile/text_scanner.test-10                   728.2m ± 1%   329.8m ± 0%  -54.71% (p=0.001 n=7)
TinyGo/Compile/unicode.test-10                        686.1m ± 3%   312.6m ± 1%  -54.44% (p=0.001 n=7)
TinyGo/Compile/unicode_utf16.test-10                  673.0m ± 1%   312.1m ± 3%  -53.63% (p=0.001 n=7)
TinyGo/Compile/unicode_utf8.test-10                   681.9m ± 1%   308.5m ± 2%  -54.76% (p=0.001 n=7)
Wasip1/Compile/src_archive_tar.test-10                 3.203 ± 0%    1.938 ± 2%  -39.49% (p=0.001 n=7)
Wasip1/Compile/src_bufio.test-10                       1.949 ± 3%    1.297 ± 0%  -33.46% (p=0.001 n=7)
Wasip1/Compile/src_bytes.test-10                       2.009 ± 0%    1.339 ± 0%  -33.37% (p=0.001 n=7)
Wasip1/Compile/src_context.test-10                     2.153 ± 3%    1.444 ± 1%  -32.92% (p=0.001 n=7)
Wasip1/Compile/src_encoding_ascii85.test-10            1.788 ± 2%    1.160 ± 1%  -35.12% (p=0.001 n=7)
Wasip1/Compile/src_encoding_asn1.test-10               2.037 ± 2%    1.334 ± 1%  -34.50% (p=0.001 n=7)
Wasip1/Compile/src_encoding_base32.test-10             1.829 ± 1%    1.203 ± 0%  -34.20% (p=0.001 n=7)
Wasip1/Compile/src_encoding_base64.test-10             1.845 ± 0%    1.212 ± 0%  -34.31% (p=0.001 n=7)
Wasip1/Compile/src_encoding_binary.test-10             1.881 ± 1%    1.241 ± 0%  -34.04% (p=0.001 n=7)
Wasip1/Compile/src_encoding_csv.test-10                1.840 ± 0%    1.208 ± 0%  -34.33% (p=0.001 n=7)
Wasip1/Compile/src_encoding_gob.test-10                2.430 ± 0%    1.647 ± 0%  -32.22% (p=0.001 n=7)
Wasip1/Compile/src_encoding_hex.test-10                1.782 ± 0%    1.180 ± 3%  -33.78% (p=0.001 n=7)
Wasip1/Compile/src_encoding_json.test-10               5.244 ± 4%    3.496 ± 2%  -33.33% (p=0.001 n=7)
Wasip1/Compile/src_encoding_pem.test-10                2.312 ± 3%    1.530 ± 4%  -33.83% (p=0.001 n=7)
Wasip1/Compile/src_encoding_xml.test-10                2.129 ± 0%    1.435 ± 1%  -32.58% (p=0.001 n=7)
Wasip1/Compile/src_errors.test-10                      1.828 ± 1%    1.202 ± 1%  -34.24% (p=0.001 n=7)
Wasip1/Compile/src_expvar.test-10                      2.656 ± 0%    1.790 ± 1%  -32.60% (p=0.001 n=7)
Wasip1/Compile/src_flag.test-10                        1.951 ± 0%    1.309 ± 0%  -32.93% (p=0.001 n=7)
Wasip1/Compile/src_fmt.test-10                         1.992 ± 2%    1.322 ± 0%  -33.63% (p=0.001 n=7)
Wasip1/Compile/src_hash.test-10                        1.838 ± 1%    1.187 ± 1%  -35.40% (p=0.001 n=7)
Wasip1/Compile/src_hash_adler32.test-10                1.779 ± 3%    1.150 ± 0%  -35.39% (p=0.001 n=7)
Wasip1/Compile/src_hash_crc32.test-10                  1.764 ± 6%    1.164 ± 0%  -34.05% (p=0.001 n=7)
Wasip1/Compile/src_hash_crc64.test-10                  1.754 ± 2%    1.154 ± 0%  -34.20% (p=0.001 n=7)
Wasip1/Compile/src_hash_fnv.test-10                    1.829 ± 3%    1.162 ± 1%  -36.49% (p=0.001 n=7)
Wasip1/Compile/src_hash_maphash.test-10                1.812 ± 7%    1.172 ± 0%  -35.36% (p=0.001 n=7)
Wasip1/Compile/src_io.test-10                          1.984 ± 2%    1.284 ± 0%  -35.30% (p=0.001 n=7)
Wasip1/Compile/src_io_fs.test-10                       1.981 ± 2%    1.276 ± 0%  -35.62% (p=0.001 n=7)
Wasip1/Compile/src_io_ioutil.test-10                   1.890 ± 4%    1.189 ± 0%  -37.09% (p=0.001 n=7)
Wasip1/Compile/src_log.test-10                         1.800 ± 4%    1.170 ± 0%  -35.00% (p=0.001 n=7)
Wasip1/Compile/src_log_syslog.test-10                  1.837 ± 4%    1.157 ± 0%  -37.04% (p=0.001 n=7)
Wasip1/Compile/src_maps.test-10                        1.794 ± 4%    1.169 ± 0%  -34.86% (p=0.001 n=7)
Wasip1/Compile/src_math.test-10                        1.975 ± 3%    1.276 ± 2%  -35.39% (p=0.001 n=7)
Wasip1/Compile/src_math_big.test-10                    3.586 ± 4%    2.443 ± 2%  -31.87% (p=0.001 n=7)
Wasip1/Compile/src_math_bits.test-10                   1.834 ± 3%    1.210 ± 6%  -34.01% (p=0.001 n=7)
Wasip1/Compile/src_math_cmplx.test-10                  1.876 ± 3%    1.221 ± 2%  -34.91% (p=0.001 n=7)
Wasip1/Compile/src_math_rand.test-10                   2.956 ± 2%    1.942 ± 4%  -34.31% (p=0.001 n=7)
Wasip1/Compile/src_mime.test-10                        1.942 ± 3%    1.307 ± 4%  -32.69% (p=0.001 n=7)
Wasip1/Compile/src_mime_multipart.test-10              2.244 ± 2%    1.482 ± 7%  -33.95% (p=0.001 n=7)
Wasip1/Compile/src_mime_quotedprintable.test-10        1.927 ± 3%    1.216 ± 0%  -36.89% (p=0.001 n=7)
Wasip1/Compile/src_os.test-10                          2.531 ± 3%    1.635 ± 3%  -35.38% (p=0.001 n=7)
Wasip1/Compile/src_os_exec.test-10                     4.691 ± 1%    3.196 ± 2%  -31.87% (p=0.001 n=7)
Wasip1/Compile/src_os_signal.test-10                   1.792 ± 3%    1.142 ± 1%  -36.27% (p=0.001 n=7)
Wasip1/Compile/src_os_user.test-10                     1.795 ± 3%    1.172 ± 0%  -34.68% (p=0.001 n=7)
Wasip1/Compile/src_path.test-10                        1.805 ± 3%    1.159 ± 0%  -35.80% (p=0.001 n=7)
Wasip1/Compile/src_reflect.test-10                     4.129 ± 2%    2.556 ± 0%  -38.10% (p=0.001 n=7)
Wasip1/Compile/src_regexp.test-10                      2.165 ± 3%    1.371 ± 1%  -36.69% (p=0.001 n=7)
Wasip1/Compile/src_regexp_syntax.test-10               1.866 ± 2%    1.179 ± 0%  -36.77% (p=0.001 n=7)
Wasip1/Compile/src_runtime.test-10                     6.289 ± 3%    4.102 ± 0%  -34.78% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_atomic.test-10     1.828 ± 2%    1.163 ± 0%  -36.38% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_math.test-10       1.782 ± 3%    1.141 ± 0%  -35.96% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_sys.test-10        1.759 ± 4%    1.142 ± 0%  -35.08% (p=0.001 n=7)
Wasip1/Compile/src_slices.test-10                      2.006 ± 3%    1.301 ± 0%  -35.13% (p=0.001 n=7)
Wasip1/Compile/src_sort.test-10                        1.865 ± 1%    1.224 ± 1%  -34.35% (p=0.001 n=7)
Wasip1/Compile/src_strconv.test-10                     1.978 ± 6%    1.294 ± 0%  -34.56% (p=0.001 n=7)
Wasip1/Compile/src_strings.test-10                     2.075 ± 2%    1.335 ± 4%  -35.65% (p=0.001 n=7)
Wasip1/Compile/src_sync.test-10                        2.098 ± 5%    1.328 ± 0%  -36.69% (p=0.001 n=7)
Wasip1/Compile/src_sync_atomic.test-10                 1.917 ± 6%    1.236 ± 0%  -35.50% (p=0.001 n=7)
Wasip1/Compile/src_syscall.test-10                     1.805 ± 3%    1.148 ± 0%  -36.37% (p=0.001 n=7)
Wasip1/Compile/src_testing.test-10                     2.648 ± 3%    1.740 ± 0%  -34.26% (p=0.001 n=7)
Wasip1/Compile/src_testing_fstest.test-10              2.014 ± 2%    1.305 ± 0%  -35.18% (p=0.001 n=7)
Wasip1/Compile/src_testing_iotest.test-10              1.821 ± 2%    1.188 ± 0%  -34.76% (p=0.001 n=7)
Wasip1/Compile/src_testing_quick.test-10               1.929 ± 4%    1.215 ± 2%  -37.01% (p=0.001 n=7)
Wasip1/Compile/src_time.test-10                        3.038 ± 2%    2.075 ± 2%  -31.69% (p=0.001 n=7)
geomean                                                1.511        872.0m       -42.31%

                                                   │    old.txt    │               new.txt               │
                                                   │     B/op      │     B/op      vs base               │
Zig/Compile/test-opt.wasm-10                          447.7Mi ± 0%   383.8Mi ± 0%  -14.27% (p=0.001 n=7)
Zig/Compile/test.wasm-10                              693.8Mi ± 0%   594.0Mi ± 0%  -14.38% (p=0.001 n=7)
TinyGo/Compile/container_heap.test-10                 60.50Mi ± 0%   44.10Mi ± 0%  -27.11% (p=0.001 n=7)
TinyGo/Compile/container_list.test-10                 60.43Mi ± 0%   44.07Mi ± 0%  -27.08% (p=0.001 n=7)
TinyGo/Compile/container_ring.test-10                 59.66Mi ± 0%   43.32Mi ± 0%  -27.39% (p=0.001 n=7)
TinyGo/Compile/crypto_des.test-10                     60.68Mi ± 0%   44.21Mi ± 0%  -27.15% (p=0.001 n=7)
TinyGo/Compile/crypto_md5.test-10                     60.81Mi ± 0%   44.21Mi ± 0%  -27.29% (p=0.001 n=7)
TinyGo/Compile/crypto_rc4.test-10                     59.67Mi ± 0%   43.30Mi ± 0%  -27.43% (p=0.001 n=7)
TinyGo/Compile/crypto_sha1.test-10                    61.02Mi ± 0%   44.46Mi ± 0%  -27.14% (p=0.001 n=7)
TinyGo/Compile/crypto_sha256.test-10                  60.85Mi ± 0%   44.29Mi ± 0%  -27.21% (p=0.001 n=7)
TinyGo/Compile/crypto_sha512.test-10                  60.82Mi ± 0%   44.34Mi ± 0%  -27.11% (p=0.001 n=7)
TinyGo/Compile/encoding_ascii85.test-10               60.63Mi ± 0%   44.13Mi ± 0%  -27.22% (p=0.001 n=7)
TinyGo/Compile/encoding_base32.test-10                68.98Mi ± 0%   50.05Mi ± 0%  -27.44% (p=0.001 n=7)
TinyGo/Compile/encoding_csv.test-10                   61.76Mi ± 0%   44.62Mi ± 0%  -27.75% (p=0.001 n=7)
TinyGo/Compile/encoding_hex.test-10                   61.09Mi ± 0%   44.31Mi ± 0%  -27.46% (p=0.001 n=7)
TinyGo/Compile/go_scanner.test-10                     62.73Mi ± 0%   45.01Mi ± 0%  -28.24% (p=0.001 n=7)
TinyGo/Compile/hash.test-10                           65.57Mi ± 0%   46.40Mi ± 0%  -29.23% (p=0.001 n=7)
TinyGo/Compile/hash_adler32.test-10                   60.06Mi ± 0%   43.68Mi ± 0%  -27.27% (p=0.001 n=7)
TinyGo/Compile/hash_crc64.test-10                     64.51Mi ± 0%   46.16Mi ± 0%  -28.44% (p=0.001 n=7)
TinyGo/Compile/hash_fnv.test-10                       60.73Mi ± 0%   44.21Mi ± 0%  -27.20% (p=0.001 n=7)
TinyGo/Compile/html.test-10                           184.3Mi ± 0%   149.0Mi ± 0%  -19.15% (p=0.001 n=7)
TinyGo/Compile/internal_itoa.test-10                  59.56Mi ± 0%   43.25Mi ± 0%  -27.38% (p=0.001 n=7)
TinyGo/Compile/internal_profile.test-10               49.77Mi ± 0%   33.57Mi ± 0%  -32.54% (p=0.001 n=7)
TinyGo/Compile/math.test-10                           65.64Mi ± 0%   47.41Mi ± 0%  -27.77% (p=0.001 n=7)
TinyGo/Compile/math_cmplx.test-10                     60.97Mi ± 0%   45.54Mi ± 0%  -25.30% (p=0.001 n=7)
TinyGo/Compile/net.test-10                            62.76Mi ± 0%   45.82Mi ± 0%  -26.99% (p=0.001 n=7)
TinyGo/Compile/net_http_internal_ascii.test-10        59.57Mi ± 0%   43.26Mi ± 0%  -27.38% (p=0.001 n=7)
TinyGo/Compile/net_mail.test-10                       66.39Mi ± 0%   47.65Mi ± 0%  -28.23% (p=0.001 n=7)
TinyGo/Compile/os.test-10                             64.49Mi ± 0%   46.31Mi ± 0%  -28.20% (p=0.001 n=7)
TinyGo/Compile/path.test-10                           60.60Mi ± 0%   44.06Mi ± 0%  -27.28% (p=0.001 n=7)
TinyGo/Compile/reflect.test-10                        61.63Mi ± 0%   45.83Mi ± 0%  -25.63% (p=0.001 n=7)
TinyGo/Compile/sync.test-10                           61.24Mi ± 0%   44.44Mi ± 0%  -27.44% (p=0.001 n=7)
TinyGo/Compile/testing.test-10                        53.54Mi ± 0%   38.51Mi ± 0%  -28.07% (p=0.001 n=7)
TinyGo/Compile/testing_iotest.test-10                 61.11Mi ± 0%   44.41Mi ± 0%  -27.32% (p=0.001 n=7)
TinyGo/Compile/text_scanner.test-10                   61.62Mi ± 0%   44.77Mi ± 0%  -27.34% (p=0.001 n=7)
TinyGo/Compile/unicode.test-10                        60.65Mi ± 0%   44.19Mi ± 0%  -27.13% (p=0.001 n=7)
TinyGo/Compile/unicode_utf16.test-10                  57.15Mi ± 0%   41.84Mi ± 0%  -26.78% (p=0.001 n=7)
TinyGo/Compile/unicode_utf8.test-10                   60.87Mi ± 0%   44.43Mi ± 0%  -27.00% (p=0.001 n=7)
Wasip1/Compile/src_archive_tar.test-10               113.37Mi ± 0%   90.30Mi ± 0%  -20.35% (p=0.001 n=7)
Wasip1/Compile/src_bufio.test-10                      89.18Mi ± 0%   70.57Mi ± 0%  -20.87% (p=0.001 n=7)
Wasip1/Compile/src_bytes.test-10                      90.79Mi ± 0%   71.74Mi ± 0%  -20.98% (p=0.001 n=7)
Wasip1/Compile/src_context.test-10                    94.12Mi ± 0%   74.46Mi ± 0%  -20.89% (p=0.001 n=7)
Wasip1/Compile/src_encoding_ascii85.test-10           84.93Mi ± 0%   66.87Mi ± 0%  -21.26% (p=0.001 n=7)
Wasip1/Compile/src_encoding_asn1.test-10              92.12Mi ± 0%   71.88Mi ± 0%  -21.97% (p=0.001 n=7)
Wasip1/Compile/src_encoding_base32.test-10            86.83Mi ± 0%   68.33Mi ± 0%  -21.31% (p=0.001 n=7)
Wasip1/Compile/src_encoding_base64.test-10            87.31Mi ± 0%   68.55Mi ± 0%  -21.49% (p=0.001 n=7)
Wasip1/Compile/src_encoding_binary.test-10            88.14Mi ± 0%   69.47Mi ± 0%  -21.18% (p=0.001 n=7)
Wasip1/Compile/src_encoding_csv.test-10               87.16Mi ± 0%   68.51Mi ± 0%  -21.39% (p=0.001 n=7)
Wasip1/Compile/src_encoding_gob.test-10              101.15Mi ± 0%   80.67Mi ± 0%  -20.24% (p=0.001 n=7)
Wasip1/Compile/src_encoding_hex.test-10               85.53Mi ± 0%   67.38Mi ± 0%  -21.23% (p=0.001 n=7)
Wasip1/Compile/src_encoding_json.test-10              203.1Mi ± 0%   159.1Mi ± 0%  -21.64% (p=0.001 n=7)
Wasip1/Compile/src_encoding_pem.test-10               99.04Mi ± 0%   77.88Mi ± 0%  -21.37% (p=0.001 n=7)
Wasip1/Compile/src_encoding_xml.test-10               95.24Mi ± 0%   74.71Mi ± 0%  -21.56% (p=0.001 n=7)
Wasip1/Compile/src_errors.test-10                     86.83Mi ± 0%   68.36Mi ± 0%  -21.28% (p=0.001 n=7)
Wasip1/Compile/src_expvar.test-10                    107.80Mi ± 0%   83.72Mi ± 0%  -22.33% (p=0.001 n=7)
Wasip1/Compile/src_flag.test-10                       90.97Mi ± 0%   71.28Mi ± 0%  -21.65% (p=0.001 n=7)
Wasip1/Compile/src_fmt.test-10                        90.44Mi ± 0%   71.59Mi ± 0%  -20.84% (p=0.001 n=7)
Wasip1/Compile/src_hash.test-10                       85.85Mi ± 0%   67.64Mi ± 0%  -21.21% (p=0.001 n=7)
Wasip1/Compile/src_hash_adler32.test-10               84.70Mi ± 0%   66.68Mi ± 0%  -21.27% (p=0.001 n=7)
Wasip1/Compile/src_hash_crc32.test-10                 85.07Mi ± 0%   67.06Mi ± 0%  -21.16% (p=0.001 n=7)
Wasip1/Compile/src_hash_crc64.test-10                 84.77Mi ± 0%   66.77Mi ± 0%  -21.24% (p=0.001 n=7)
Wasip1/Compile/src_hash_fnv.test-10                   85.02Mi ± 0%   67.01Mi ± 0%  -21.19% (p=0.001 n=7)
Wasip1/Compile/src_hash_maphash.test-10               85.21Mi ± 0%   67.17Mi ± 0%  -21.17% (p=0.001 n=7)
Wasip1/Compile/src_io.test-10                         89.25Mi ± 0%   70.48Mi ± 0%  -21.04% (p=0.001 n=7)
Wasip1/Compile/src_io_fs.test-10                      89.17Mi ± 0%   70.19Mi ± 0%  -21.28% (p=0.001 n=7)
Wasip1/Compile/src_io_ioutil.test-10                  85.88Mi ± 0%   67.63Mi ± 0%  -21.25% (p=0.001 n=7)
Wasip1/Compile/src_log.test-10                        85.24Mi ± 0%   67.19Mi ± 0%  -21.18% (p=0.001 n=7)
Wasip1/Compile/src_log_syslog.test-10                 84.82Mi ± 0%   66.81Mi ± 0%  -21.24% (p=0.001 n=7)
Wasip1/Compile/src_maps.test-10                       85.17Mi ± 0%   67.06Mi ± 0%  -21.26% (p=0.001 n=7)
Wasip1/Compile/src_math.test-10                       89.30Mi ± 0%   70.92Mi ± 0%  -20.59% (p=0.001 n=7)
Wasip1/Compile/src_math_big.test-10                   126.5Mi ± 0%   100.1Mi ± 0%  -20.87% (p=0.001 n=7)
Wasip1/Compile/src_math_bits.test-10                  85.62Mi ± 0%   67.59Mi ± 0%  -21.06% (p=0.001 n=7)
Wasip1/Compile/src_math_cmplx.test-10                 86.32Mi ± 0%   68.29Mi ± 0%  -20.89% (p=0.001 n=7)
Wasip1/Compile/src_math_rand.test-10                 111.34Mi ± 0%   87.61Mi ± 0%  -21.32% (p=0.001 n=7)
Wasip1/Compile/src_mime.test-10                       88.71Mi ± 0%   69.82Mi ± 0%  -21.30% (p=0.001 n=7)
Wasip1/Compile/src_mime_multipart.test-10             93.74Mi ± 0%   73.89Mi ± 0%  -21.17% (p=0.001 n=7)
Wasip1/Compile/src_mime_quotedprintable.test-10       87.10Mi ± 0%   68.59Mi ± 0%  -21.25% (p=0.001 n=7)
Wasip1/Compile/src_os.test-10                         99.76Mi ± 0%   79.32Mi ± 0%  -20.49% (p=0.001 n=7)
Wasip1/Compile/src_os_exec.test-10                    148.5Mi ± 0%   118.4Mi ± 0%  -20.24% (p=0.001 n=7)
Wasip1/Compile/src_os_signal.test-10                  84.38Mi ± 0%   66.43Mi ± 0%  -21.27% (p=0.001 n=7)
Wasip1/Compile/src_os_user.test-10                    85.26Mi ± 0%   67.21Mi ± 0%  -21.16% (p=0.001 n=7)
Wasip1/Compile/src_path.test-10                       84.90Mi ± 0%   66.84Mi ± 0%  -21.27% (p=0.001 n=7)
Wasip1/Compile/src_reflect.test-10                    358.3Mi ± 0%   291.2Mi ± 0%  -18.73% (p=0.001 n=7)
Wasip1/Compile/src_regexp.test-10                    111.09Mi ± 0%   87.51Mi ± 0%  -21.23% (p=0.001 n=7)
Wasip1/Compile/src_regexp_syntax.test-10              85.46Mi ± 0%   67.34Mi ± 0%  -21.20% (p=0.001 n=7)
Wasip1/Compile/src_runtime.test-10                    207.6Mi ± 0%   164.7Mi ± 0%  -20.65% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_atomic.test-10    85.05Mi ± 0%   67.06Mi ± 0%  -21.15% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_math.test-10      84.42Mi ± 0%   66.45Mi ± 0%  -21.28% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_sys.test-10       84.41Mi ± 0%   66.45Mi ± 0%  -21.28% (p=0.001 n=7)
Wasip1/Compile/src_slices.test-10                     90.22Mi ± 0%   70.67Mi ± 0%  -21.66% (p=0.001 n=7)
Wasip1/Compile/src_sort.test-10                       87.54Mi ± 0%   69.11Mi ± 0%  -21.05% (p=0.001 n=7)
Wasip1/Compile/src_strconv.test-10                    89.70Mi ± 0%   70.94Mi ± 0%  -20.91% (p=0.001 n=7)
Wasip1/Compile/src_strings.test-10                    91.99Mi ± 0%   72.64Mi ± 0%  -21.04% (p=0.001 n=7)
Wasip1/Compile/src_sync.test-10                       91.53Mi ± 0%   72.23Mi ± 0%  -21.08% (p=0.001 n=7)
Wasip1/Compile/src_sync_atomic.test-10                87.46Mi ± 0%   69.36Mi ± 0%  -20.70% (p=0.001 n=7)
Wasip1/Compile/src_syscall.test-10                    84.66Mi ± 0%   66.68Mi ± 0%  -21.24% (p=0.001 n=7)
Wasip1/Compile/src_testing.test-10                   105.00Mi ± 0%   82.96Mi ± 0%  -20.99% (p=0.001 n=7)
Wasip1/Compile/src_testing_fstest.test-10             90.05Mi ± 0%   70.85Mi ± 0%  -21.32% (p=0.001 n=7)
Wasip1/Compile/src_testing_iotest.test-10             85.70Mi ± 0%   67.62Mi ± 0%  -21.10% (p=0.001 n=7)
Wasip1/Compile/src_testing_quick.test-10              87.68Mi ± 0%   68.86Mi ± 0%  -21.46% (p=0.001 n=7)
Wasip1/Compile/src_time.test-10                      114.94Mi ± 0%   91.32Mi ± 0%  -20.55% (p=0.001 n=7)
geomean                                               85.49Mi        65.61Mi       -23.25%

                                                   │   old.txt    │              new.txt               │
                                                   │  allocs/op   │  allocs/op   vs base               │
Zig/Compile/test-opt.wasm-10                          389.0k ± 0%   322.5k ± 0%  -17.10% (p=0.001 n=7)
Zig/Compile/test.wasm-10                              521.6k ± 0%   277.2k ± 0%  -46.85% (p=0.001 n=7)
TinyGo/Compile/container_heap.test-10                121.68k ± 0%   70.81k ± 0%  -41.81% (p=0.001 n=7)
TinyGo/Compile/container_list.test-10                121.03k ± 0%   70.65k ± 0%  -41.63% (p=0.001 n=7)
TinyGo/Compile/container_ring.test-10                120.93k ± 0%   70.58k ± 0%  -41.63% (p=0.001 n=7)
TinyGo/Compile/crypto_des.test-10                    122.19k ± 0%   70.89k ± 0%  -41.98% (p=0.001 n=7)
TinyGo/Compile/crypto_md5.test-10                    122.42k ± 0%   70.90k ± 0%  -42.09% (p=0.001 n=7)
TinyGo/Compile/crypto_rc4.test-10                    121.21k ± 0%   70.61k ± 0%  -41.75% (p=0.001 n=7)
TinyGo/Compile/crypto_sha1.test-10                   122.74k ± 0%   71.16k ± 0%  -42.03% (p=0.001 n=7)
TinyGo/Compile/crypto_sha256.test-10                 122.27k ± 0%   70.97k ± 0%  -41.96% (p=0.001 n=7)
TinyGo/Compile/crypto_sha512.test-10                 122.27k ± 0%   71.12k ± 0%  -41.84% (p=0.001 n=7)
TinyGo/Compile/encoding_ascii85.test-10              122.17k ± 0%   70.68k ± 0%  -42.14% (p=0.001 n=7)
TinyGo/Compile/encoding_base32.test-10               129.65k ± 0%   73.70k ± 0%  -43.15% (p=0.001 n=7)
TinyGo/Compile/encoding_csv.test-10                  126.50k ± 0%   71.72k ± 0%  -43.31% (p=0.001 n=7)
TinyGo/Compile/encoding_hex.test-10                  123.70k ± 0%   70.96k ± 0%  -42.63% (p=0.001 n=7)
TinyGo/Compile/go_scanner.test-10                    127.24k ± 0%   71.86k ± 0%  -43.53% (p=0.001 n=7)
TinyGo/Compile/hash.test-10                          130.71k ± 0%   73.79k ± 0%  -43.55% (p=0.001 n=7)
TinyGo/Compile/hash_adler32.test-10                  121.03k ± 0%   70.54k ± 0%  -41.71% (p=0.001 n=7)
TinyGo/Compile/hash_crc64.test-10                    124.92k ± 0%   72.37k ± 0%  -42.07% (p=0.001 n=7)
TinyGo/Compile/hash_fnv.test-10                      122.36k ± 0%   70.97k ± 0%  -42.00% (p=0.001 n=7)
TinyGo/Compile/html.test-10                           339.7k ± 0%   251.6k ± 0%  -25.95% (p=0.001 n=7)
TinyGo/Compile/internal_itoa.test-10                 120.81k ± 0%   70.41k ± 0%  -41.72% (p=0.001 n=7)
TinyGo/Compile/internal_profile.test-10              124.59k ± 0%   58.61k ± 0%  -52.96% (p=0.001 n=7)
TinyGo/Compile/math.test-10                          132.47k ± 0%   72.52k ± 0%  -45.26% (p=0.001 n=7)
TinyGo/Compile/math_cmplx.test-10                    128.29k ± 0%   72.34k ± 0%  -43.61% (p=0.001 n=7)
TinyGo/Compile/net.test-10                           125.86k ± 0%   71.67k ± 0%  -43.06% (p=0.001 n=7)
TinyGo/Compile/net_http_internal_ascii.test-10       120.71k ± 0%   70.49k ± 0%  -41.60% (p=0.001 n=7)
TinyGo/Compile/net_mail.test-10                      137.53k ± 0%   75.11k ± 0%  -45.39% (p=0.001 n=7)
TinyGo/Compile/os.test-10                            129.11k ± 0%   72.47k ± 0%  -43.87% (p=0.001 n=7)
TinyGo/Compile/path.test-10                          122.35k ± 0%   70.70k ± 0%  -42.21% (p=0.001 n=7)
TinyGo/Compile/reflect.test-10                       134.94k ± 0%   72.24k ± 0%  -46.46% (p=0.001 n=7)
TinyGo/Compile/sync.test-10                          122.49k ± 0%   70.93k ± 0%  -42.10% (p=0.001 n=7)
TinyGo/Compile/testing.test-10                       120.55k ± 0%   64.11k ± 0%  -46.82% (p=0.001 n=7)
TinyGo/Compile/testing_iotest.test-10                123.68k ± 0%   71.28k ± 0%  -42.37% (p=0.001 n=7)
TinyGo/Compile/text_scanner.test-10                  123.95k ± 0%   71.08k ± 0%  -42.66% (p=0.001 n=7)
TinyGo/Compile/unicode.test-10                       121.78k ± 0%   70.86k ± 0%  -41.81% (p=0.001 n=7)
TinyGo/Compile/unicode_utf16.test-10                 127.60k ± 0%   72.13k ± 0%  -43.47% (p=0.001 n=7)
TinyGo/Compile/unicode_utf8.test-10                  121.69k ± 0%   70.78k ± 0%  -41.83% (p=0.001 n=7)
Wasip1/Compile/src_archive_tar.test-10                354.8k ± 0%   252.7k ± 0%  -28.78% (p=0.001 n=7)
Wasip1/Compile/src_bufio.test-10                      257.3k ± 0%   182.3k ± 0%  -29.13% (p=0.001 n=7)
Wasip1/Compile/src_bytes.test-10                      268.8k ± 0%   190.2k ± 0%  -29.24% (p=0.001 n=7)
Wasip1/Compile/src_context.test-10                    290.1k ± 0%   207.3k ± 0%  -28.54% (p=0.001 n=7)
Wasip1/Compile/src_encoding_ascii85.test-10           241.1k ± 0%   170.0k ± 0%  -29.49% (p=0.001 n=7)
Wasip1/Compile/src_encoding_asn1.test-10              270.8k ± 0%   185.3k ± 0%  -31.57% (p=0.001 n=7)
Wasip1/Compile/src_encoding_base32.test-10            247.3k ± 0%   173.4k ± 0%  -29.90% (p=0.001 n=7)
Wasip1/Compile/src_encoding_base64.test-10            249.8k ± 0%   173.9k ± 0%  -30.36% (p=0.001 n=7)
Wasip1/Compile/src_encoding_binary.test-10            254.7k ± 0%   178.9k ± 0%  -29.77% (p=0.001 n=7)
Wasip1/Compile/src_encoding_csv.test-10               249.9k ± 0%   174.7k ± 0%  -30.08% (p=0.001 n=7)
Wasip1/Compile/src_encoding_gob.test-10               303.1k ± 0%   214.5k ± 0%  -29.23% (p=0.001 n=7)
Wasip1/Compile/src_encoding_hex.test-10               244.3k ± 0%   172.4k ± 0%  -29.42% (p=0.001 n=7)
Wasip1/Compile/src_encoding_json.test-10              540.6k ± 0%   358.7k ± 0%  -33.65% (p=0.001 n=7)
Wasip1/Compile/src_encoding_pem.test-10               290.7k ± 0%   198.6k ± 0%  -31.67% (p=0.001 n=7)
Wasip1/Compile/src_encoding_xml.test-10               286.2k ± 0%   197.9k ± 0%  -30.87% (p=0.001 n=7)
Wasip1/Compile/src_errors.test-10                     248.2k ± 0%   174.0k ± 0%  -29.89% (p=0.001 n=7)
Wasip1/Compile/src_expvar.test-10                     347.5k ± 0%   235.8k ± 0%  -32.15% (p=0.001 n=7)
Wasip1/Compile/src_flag.test-10                       266.3k ± 0%   184.4k ± 0%  -30.77% (p=0.001 n=7)
Wasip1/Compile/src_fmt.test-10                        266.8k ± 0%   189.6k ± 0%  -28.91% (p=0.001 n=7)
Wasip1/Compile/src_hash.test-10                       246.5k ± 0%   174.3k ± 0%  -29.31% (p=0.001 n=7)
Wasip1/Compile/src_hash_adler32.test-10               239.8k ± 0%   169.1k ± 0%  -29.48% (p=0.001 n=7)
Wasip1/Compile/src_hash_crc32.test-10                 242.6k ± 0%   172.0k ± 0%  -29.12% (p=0.001 n=7)
Wasip1/Compile/src_hash_crc64.test-10                 240.4k ± 0%   169.8k ± 0%  -29.38% (p=0.001 n=7)
Wasip1/Compile/src_hash_fnv.test-10                   242.9k ± 0%   172.2k ± 0%  -29.13% (p=0.001 n=7)
Wasip1/Compile/src_hash_maphash.test-10               243.1k ± 0%   172.0k ± 0%  -29.26% (p=0.001 n=7)
Wasip1/Compile/src_io.test-10                         263.0k ± 0%   186.7k ± 0%  -29.02% (p=0.001 n=7)
Wasip1/Compile/src_io_fs.test-10                      262.1k ± 0%   184.0k ± 0%  -29.80% (p=0.001 n=7)
Wasip1/Compile/src_io_ioutil.test-10                  246.7k ± 0%   174.0k ± 0%  -29.48% (p=0.001 n=7)
Wasip1/Compile/src_log.test-10                        243.4k ± 0%   172.1k ± 0%  -29.28% (p=0.001 n=7)
Wasip1/Compile/src_log_syslog.test-10                 240.4k ± 0%   169.6k ± 0%  -29.46% (p=0.001 n=7)
Wasip1/Compile/src_maps.test-10                       241.5k ± 0%   170.0k ± 0%  -29.63% (p=0.001 n=7)
Wasip1/Compile/src_math.test-10                       254.5k ± 0%   181.0k ± 0%  -28.87% (p=0.001 n=7)
Wasip1/Compile/src_math_big.test-10                   422.2k ± 0%   293.5k ± 0%  -30.47% (p=0.001 n=7)
Wasip1/Compile/src_math_bits.test-10                  247.3k ± 0%   176.2k ± 0%  -28.74% (p=0.001 n=7)
Wasip1/Compile/src_math_cmplx.test-10                 243.4k ± 0%   172.6k ± 0%  -29.12% (p=0.001 n=7)
Wasip1/Compile/src_math_rand.test-10                  393.1k ± 0%   280.6k ± 0%  -28.62% (p=0.001 n=7)
Wasip1/Compile/src_mime.test-10                       255.4k ± 0%   178.3k ± 0%  -30.17% (p=0.001 n=7)
Wasip1/Compile/src_mime_multipart.test-10             278.3k ± 0%   194.7k ± 0%  -30.04% (p=0.001 n=7)
Wasip1/Compile/src_mime_quotedprintable.test-10       248.9k ± 0%   174.8k ± 0%  -29.78% (p=0.001 n=7)
Wasip1/Compile/src_os.test-10                         304.1k ± 0%   215.9k ± 0%  -28.99% (p=0.001 n=7)
Wasip1/Compile/src_os_exec.test-10                    486.5k ± 0%   331.1k ± 0%  -31.95% (p=0.001 n=7)
Wasip1/Compile/src_os_signal.test-10                  238.4k ± 0%   168.3k ± 0%  -29.40% (p=0.001 n=7)
Wasip1/Compile/src_os_user.test-10                    242.9k ± 0%   172.0k ± 0%  -29.20% (p=0.001 n=7)
Wasip1/Compile/src_path.test-10                       241.2k ± 0%   169.9k ± 0%  -29.54% (p=0.001 n=7)
Wasip1/Compile/src_reflect.test-10                    599.0k ± 0%   454.4k ± 0%  -24.14% (p=0.001 n=7)
Wasip1/Compile/src_regexp.test-10                     297.6k ± 0%   205.7k ± 0%  -30.90% (p=0.001 n=7)
Wasip1/Compile/src_regexp_syntax.test-10              242.3k ± 0%   170.6k ± 0%  -29.60% (p=0.001 n=7)
Wasip1/Compile/src_runtime.test-10                    616.8k ± 0%   397.3k ± 0%  -35.58% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_atomic.test-10    243.2k ± 0%   172.5k ± 0%  -29.07% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_math.test-10      238.9k ± 0%   168.4k ± 0%  -29.51% (p=0.001 n=7)
Wasip1/Compile/src_runtime_internal_sys.test-10       238.7k ± 0%   168.4k ± 0%  -29.46% (p=0.001 n=7)
Wasip1/Compile/src_slices.test-10                     265.4k ± 0%   184.3k ± 0%  -30.57% (p=0.001 n=7)
Wasip1/Compile/src_sort.test-10                       256.9k ± 0%   182.9k ± 0%  -28.79% (p=0.001 n=7)
Wasip1/Compile/src_strconv.test-10                    260.2k ± 0%   183.8k ± 0%  -29.34% (p=0.001 n=7)
Wasip1/Compile/src_strings.test-10                    274.0k ± 0%   195.9k ± 0%  -28.50% (p=0.001 n=7)
Wasip1/Compile/src_sync.test-10                       280.0k ± 0%   200.2k ± 0%  -28.51% (p=0.001 n=7)
Wasip1/Compile/src_sync_atomic.test-10                253.7k ± 0%   182.0k ± 0%  -28.28% (p=0.001 n=7)
Wasip1/Compile/src_syscall.test-10                    240.2k ± 0%   169.7k ± 0%  -29.36% (p=0.001 n=7)
Wasip1/Compile/src_testing.test-10                    339.8k ± 0%   241.0k ± 0%  -29.07% (p=0.001 n=7)
Wasip1/Compile/src_testing_fstest.test-10             262.9k ± 0%   183.6k ± 0%  -30.16% (p=0.001 n=7)
Wasip1/Compile/src_testing_iotest.test-10             244.2k ± 0%   173.0k ± 0%  -29.18% (p=0.001 n=7)
Wasip1/Compile/src_testing_quick.test-10              253.0k ± 0%   176.9k ± 0%  -30.09% (p=0.001 n=7)
Wasip1/Compile/src_time.test-10                       377.4k ± 0%   268.3k ± 0%  -28.91% (p=0.001 n=7)
geomean                                               213.2k        139.2k       -34.72%

Misc

Enjoy!