emscripten-core / emscripten-core/emscripten

WASM Binary Benchmarks

Open
#17,965 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 1h
Merged PRs (30d)
105

Description

Hey @sbc100, I was going to re-open the past issue #17937, but I felt that it would be getting out of topic, hence a new issue.

The reason that I am asking for a compiled libstdc++ is because I am trying to compile the programs from the [Computer Language Benchmark Game](https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html) to wasm binaries (plus their JS /HTML glue code). However, these programs rely on external APIs/libraries, such as OpenMP, and libstdc++, and SIMD instructions, which are still not fully supported e.g. the AVX 256-bit instruction set. I could modify the benchmark implementations, but that could [introduce possible bias.](https://www.usenix.org/conference/atc19/presentation/jangda) I know that some researchers used the SPEC CPU 2006 and 2017 benchmarks, but [they had to basically extend Browsix to run wasm binaries](https://www.usenix.org/conference/atc19/presentation/jangda) to objectively measure the performance of I/O intensive, C compiled wasm applications. However, this project is already [out of date](https://github.com/plasma-umass/browsix-emscripten), and honestly seems like a huge undertaking to even update the project at this point to just run some benchmarks. Besides, wasm has more use cases than I/O operations.

This begs the question, are you by any chance aware of any benchmarks made specifically for wasm?

Maybe it would be interesting to create a set of benchmarks that evolve alongside wasm, that can be used to objectively measure the performance/resource consumption of wasm binaries. It might seem obvious at first glance that statically typed, compiled languages like C are more efficient than interpreted languages like Typescript when targeted to wasm, but it would be nice to have empirical evidence. It might not even be the case given the maturity of wasm and the fact that a lot of the architecture specific SIMD instructions or parallel programming APIs like OpenMP have to be simulated/ported to wasm. Either way, any help or input would be greatly appreciated.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.