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

Performance benchmarks and comparisons to other compiler projects #112

Closed
matu3ba opened this issue Nov 3, 2021 · 3 comments
Closed

Performance benchmarks and comparisons to other compiler projects #112

matu3ba opened this issue Nov 3, 2021 · 3 comments
Labels
enhancement New feature or request

Comments

@matu3ba
Copy link

matu3ba commented Nov 3, 2021

The text on performance is nice and all, but doesnt show benches + time differences for the intended use case of sandboxing + jitting.

For many explanation like "Reduced garbage collector" its not evident to me with examples how "competitors" do it. It might make sense to create references or elaborate this as examples.

@matu3ba matu3ba added the enhancement New feature or request label Nov 3, 2021
@matu3ba matu3ba changed the title Performance benchmarks and comparisons to other projects Performance benchmarks and comparisons to other compiler projects Nov 3, 2021
@zeux
Copy link
Collaborator

zeux commented Nov 3, 2021

I don't think WAVM is an interesting target for us. We don't implement a JIT right now, the language is completely different, etc.

Benchmark results also depend on a compiler, for us clang vs MSVC vs gcc can result in different performance, something like LuaJIT is a more stable target because all time-critical portions there are implemented in assembly. Posting benchmark comparisons with different languages is hard! Translating languages precisely can be difficult.

In general performance documentation is provided as an illustration of techniques we had to use to improve performance. Luau doesn't claim to be superior to any given implementation or language, short of vanilla Lua where we can confidently say we're much faster than any other vanilla version. LuaJIT, especially in JIT mode, is faster than Luau at this point.

As for garbage collectors, it's difficult to explain this as well! Many garbage collectors in other languages aren't incremental, but some are generational or concurrent. At some point we will probably write a separate document on garbage collection, but we're too early in the process to describe all tradeoffs well - we have current and planned work to improve garbage collection throughput.

@zeux
Copy link
Collaborator

zeux commented Nov 4, 2021

I'm going to close this for now, since I don't think there's any specific actionable items for us to take today, and we already have plans to keep expanding our performance documentation as more changes land or solidify. Please feel free to ask specific questions in discussion forum!

@zeux zeux closed this as completed Nov 4, 2021
@zeux zeux added the wontfix label Nov 4, 2021
@dumblob
Copy link

dumblob commented Nov 7, 2021

I'd slightly adjust the goal of this issue and ask for showing non-rigorous benchmarks simply by adding Luau to https://github.com/kostya/benchmarks (which is an attempt to side-step the benchmarking issues one would need to solve in rigorous benchmarks; it's also developed & maintained for years already unlike most other benchmarks).

@zeux does this sound actionable?

@zeux zeux closed this as not planned Won't fix, can't repro, duplicate, stale Jul 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

3 participants