-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Performance of generic tupes #6524
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
Comments
How does it look without the |
Does not change much. I did some experiments and it looks like the performance loss depends on the amount on generated code and the number of cases in inline matches. |
It'd be worth doing some benchmarks against the equivalents using nested pairs rather than tuples. They're almost certainly going to win for things like head and tail, but it'd be useful to see how they compare for other types of operation. |
We should benchmark both the compilation time and runtime |
The regressional benchmark is still running (begins from last November, with one test every 5 PR merges): http://dotty-bench.epfl.ch/ (at the bottom) Once it finishes, we will be able to locate to the specific PR that causes the 2x slow down for generic tuples. |
Improves the state of scala#6524. Instead of convering all tuples to arrays and performing the operations on them, we take advantage of the fact that those Tuples are products and have productIterators. Implementations of tail, *: and ++ on iterators do not require extra collentions to be created, hence it is also probably more performant at runtime.
Improves the state of scala#6524. Instead of convering all tuples to arrays and performing the operations on them, we take advantage of the fact that those Tuples are products and have productIterators. Implementations of tail, *: and ++ on iterators do not require extra collentions to be created, hence it is also probably more performant at runtime.
Improves the state of scala#6524. Instead of convering all tuples to arrays and performing the operations on them, we take advantage of the fact that those Tuples are products and have productIterators. Implementations of tail, *: and ++ on iterators do not require extra collentions to be created, hence it is also probably more performant at runtime.
Improves the state of scala#6524. Instead of convering all tuples to arrays and performing the operations on them, we take advantage of the fact that those Tuples are products and have productIterators. Implementations of tail, *: and ++ on iterators do not require extra collentions to be created, hence it is also probably more performant at runtime.
Improves the state of scala#6524. Instead of convering all tuples to arrays and performing the operations on them, we take advantage of the fact that those Tuples are products and have productIterators. Implementations of tail, *: and ++ on iterators do not require extra collentions to be created, hence it is also probably more performant at runtime.
Compiling
is 5X faster that compiling
vs
The text was updated successfully, but these errors were encountered: