#benchmark #deno #module #depth #branch #web-bundle #webbundle

app webbundle-bench

WebBundle Bench

5 个版本 (3 个破坏性更新)

0.5.1 2022年12月5日
0.5.0 2022年12月2日
0.4.1 2022年11月30日
0.2.0 2022年11月30日
0.1.0 2022年6月8日

#220 in 性能分析

Apache-2.0

76KB
1.5K SLoC

Rust 1.5K SLoC // 0.1% comments TypeScript 173 SLoC // 0.1% comments Zsh 37 SLoC // 0.2% comments

使用 Web Bundle 的合成模块基准测试

基本用法

  • 预先安装 RustDeno (可选)。
  • 有关示例用法,请参阅 Make.zsh。以下为摘要:
  1. 检出

    git clone https://github.com/google/webbundle.git`
    
  2. 生成模块和基准测试。

    示例

    cd webbundle/webbundle-bench
    cargo run --release -- --out out --depth 4 --branches 4
    

    请参阅 build()Make.zsh 中的用法。

  3. 启动 web 服务器。

    示例

    cd ../webbundle-server
    cargo build --release
    cd ../webbundle-bench
    RUST_LOG=error ../target/release/webbundle-server --port 8080
    

    请参阅 run_webserver()Make.zsh 中的用法。

  4. 在您的浏览器中打开 https://127.0.0.1:8080/out/index.html,并单击每个基准测试。

  5. (可选) 使用 puppeteer 进行自动化运行基准测试

    deno run --allow-all ./run-bench.ts --port 8080
    

    请参阅 bench()Make.zsh 中的用法。

未实现的功能

webbundle-benchjs-modules-benchmark 的启发。

webbundle-bench 使用 Rust 和 Deno 重写,因此我们不依赖于 Python 和 Node.js,并支持必要的非常少的特性,这些特性对于基准测试 Web Bundle 加载性能是必需的。

webbundle-bench 目前缺少许多功能

  • 支持 modulepreload
  • 生成模块的规则。
  • 指定生成模块的大小。
  • 支持其他打包器(例如 rollup

依赖项

~8–17MB
~222K SLoC