enso/test/Benchmarks/src
Radosław Waśko 1b8b30a68d
Improve performance of Join_Condition.Between by sorting on one dimension (#8212)
- Closes #5303
- Refactors `JoinStrategy` allowing us to 'stack' join strategies on top of each other (to some extent) - currently a `HashJoin` can be followed by another join strategy (currently `SortJoin`)
- Adds benchmarks for join
- Due to limitations of the sorting approach this will still not be as fast as possible for cases where there is more than 1 `Between` condition in a single query - trying to demonstrate that in benchmarks.
- We can replace sorting by d-dimensional [RangeTrees](https://en.wikipedia.org/wiki/Range_tree) to get `O((n + m) log^d n + k)` performance (where `n` and `m` are sizes of joined tables, `d` is the amount of `Between` conditions used in the query and `k` is the result set size).
- Follow up ticket for consideration later:
#8216
- Closes #8215
- After all, it turned out that `TreeSet` was problematic (because of not enough flexibility with duplicate key handling), so the simplest solution was to immediately implement this sub-task.
- Closes #8204
- Unrelated, but I ran into this here: adds type checks to other arguments of `set`.
- Before, putting in a Column as `new_name` (i.e. mistakenly messing up the order of arguments), lead to a hard to understand `Method `if_then_else` of type Column could not be found.`, instead now it would file with type error 'expected Text got Column`.
2023-11-08 12:59:55 +00:00
..
Map Overhaul the random number and item generation code (#8127) 2023-10-31 15:25:37 +00:00
Runtime Compare performance of Panic / Java Exception / Dataflow error (#8130) 2023-10-24 12:03:44 +00:00
Statistics Ability to invoke all std benchmarks via jmh (#7519) 2023-08-17 14:48:43 +02:00
Table Improve performance of Join_Condition.Between by sorting on one dimension (#8212) 2023-11-08 12:59:55 +00:00
Text Add std-libs benchmarks GH workflow (#7597) 2023-08-23 12:18:36 +02:00
Time Follow up improvements to Date_Time_Formatter (#7875) 2023-09-28 09:38:00 +00:00
Vector Add std-libs benchmarks GH workflow (#7597) 2023-08-23 12:18:36 +02:00
Collections.enso Add std-libs benchmarks GH workflow (#7597) 2023-08-23 12:18:36 +02:00
Column_Numeric.enso Add std-libs benchmarks GH workflow (#7597) 2023-08-23 12:18:36 +02:00
Config.enso Compare performance of Panic / Java Exception / Dataflow error (#8130) 2023-10-24 12:03:44 +00:00
Equality.enso Ability to invoke all std benchmarks via jmh (#7519) 2023-08-17 14:48:43 +02:00
Json_Bench.enso Ability to invoke all std benchmarks via jmh (#7519) 2023-08-17 14:48:43 +02:00
Main.enso Improve performance of Join_Condition.Between by sorting on one dimension (#8212) 2023-11-08 12:59:55 +00:00
Natural_Order_Sort.enso Add std-libs benchmarks GH workflow (#7597) 2023-08-23 12:18:36 +02:00
Number_Parse.enso Rename Decimal to Float (#7807) 2023-09-14 15:01:30 +00:00
Numeric.enso Ability to invoke all std benchmarks via jmh (#7519) 2023-08-17 14:48:43 +02:00
Range.enso Transform Range.iterate test to a benchmark (#7905) 2023-09-27 12:24:45 +02:00
Sum.enso Rename Decimal to Float (#7807) 2023-09-14 15:01:30 +00:00