Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Significant performance regression #123

Closed
kg opened this issue Oct 9, 2015 · 4 comments
Closed

Significant performance regression #123

kg opened this issue Oct 9, 2015 · 4 comments

Comments

@kg
Copy link
Contributor

kg commented Oct 9, 2015

I updated to the latest revision of the spec and ml-proto is much slower than it used to be. The NBody test (https://github.com/WebAssembly/ilwasm/blob/master/third_party/tests/NBody.cs) now utilizes ~100% cpu for multiple seconds while running; it used to run at a reasonable speed.

Do we care about the performance of ml-proto? Overly slow execution will hinder our ability to iterate and bias us away from real-world tests, I think.

@lukewagner
Copy link
Member

I think the default changed to building unopt builds (they have usable stack traces); so I'd try make opt. But in general, we've collectively agreed on a few occasions that the goal of ml-proto isn't performance, it's specifying behavior cleanly. There's a lot of O(n) operations in there that would be O(1) in a real interp.

@jcbeyler
Copy link

jcbeyler commented Oct 9, 2015

I agree. I think the goal should never be about performance, it does not mean that there could be work to make it faster but that should never be a decision about to specify cleanly something or not.

As the other projects that take S-Expression and try to generate assembly move forward, we'd have a better view of problems of taking SWasm and generating code and with the VMs (including the V8 one) we'd see the performance problems when running wasm

@sunfishcode
Copy link
Member

Can you confirm whether using an optimized build runs with sufficient performance?

@lukewagner
Copy link
Member

Assuming resolved by either (1) opt builds are faster, (2) the point of the spec ref interp is not perf.

alexcrichton pushed a commit to alexcrichton/spec that referenced this issue Nov 18, 2019
…-implementation-status

Update WAVM implementation status
eqrion added a commit to eqrion/wasm-spec that referenced this issue Nov 25, 2019
Spec issue: WebAssembly/bulk-memory-operations#111

This commit changes the semantics of bulk-memory instructions to perform
an upfront bounds check and trap if any access would be out-of-bounds without
writing.

This affects the following:
 * memory.init/copy/fill
 * table.init/copy (fill requires reftypes)
 * data segment init (lowers to memory.init)
 * elem segment init (lowers to table.init)
rossberg pushed a commit that referenced this issue Sep 4, 2024
Add expected results for relaxed dot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants