Code Monkey home page Code Monkey logo

wasm-r3's Introduction

Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks

Wasm-R3 is a record and replay framework that enables generation of standalone WebAssembly Benchmarks.

Building the tool

We recommend you consult the wasm-r3.yml workflow file to see the most up-to-date way to build and run the tool.

Pre-built docker images are also provided at doehyunbaek1/wasm-r3, but they are not always updated following the main branch.

As one of the authors regularly run Wasm-R3 on his Arm Mac machine, we are confident Wasm-R3 works well across Linux and Mac.

If you have any problems, please post Github Issue.

Running

npm start <url>
  • <url>: The url of the web app you want to record. Make sure it acutally uses wasm.

The command will start the recording. To stop the recording type any key into the terminal and press enter. The benchmark will be saved to disk.

Testing

npm test

There are three categories of tests:

  • node: These tests the basic functionality of the tracer and replay generator. These tests are basically unit tests
  • offline: These tests run Wasm-R3 on web applications that get hosted locally to test the (almost) end to end functionality.
  • online: These tests run on real world online web applications in order to confirm which websites are currently supported by Wasm-R3.

To test only certain categories just provide the specific categories you want to test as an argument to the test command.

The faithfulness of Wasm-R3 is tested by comparing the trace generated during record with the trace generated during replay. The results of the testcases will be generated in the corresponding folders. Interesting files are the report.txt which contains information why a testcase failed. Also the trace for the record and the replay phase gets saved in .r3 files.

Resources

A 15-mintue talk given by one of the authors at Wasm Research Day 2024 is publicly available. You can find a brief discussion of the motivation, approach, and evaluation of Wasm-R3.

A 10-minute demo performed by one of the authors at Wasm Research Day 2024 is publicly available.

You can find a usage walkthorugh of Wasm-R3 and a sneak peak into its inner workings.

Citation

Please refer to Wasm-R3 via our OOPSLA'24 paper:

@inproceedings{Baek2024Wasm-R3,
  title = {Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks},
  author = {Baek, Doehyun and Getz, Jakob and Sim, Yusung and Lehmann, Daniel and Titzer, Ben and Ryu, Sukyoung and Pradel, Michael},
  year = {2024},
  booktitle = {Proceedings of the ACM on Programming Languages: Object-Oriented Programming, Systems, Languages \& Applications},
  series = {OOPSLA '24},
}

wasm-r3's People

Contributors

jakobgetz avatar doehyunbaek avatar yusungsim avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.