v1.7.3
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
- Various WASI related bug fixes contributed by @yagehu #2244 #2229 #2223
- Syscall compatibility fix on Windows by @ncruces #2218
- api.Memory.Grow call bug introduced in v1.7.0 by @mathetake #2216 (thanks to @mark-pictor-csec for reporting)
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
- Typo in the cache example fixed by @syumai #2238
- A new user
wescale
added in the site by @earayu #2239
Enjoy!