-
Notifications
You must be signed in to change notification settings - Fork 326
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
Remove overhead of calls from Table java code into Enso code by refactoring the functionality to Enso #6292
Comments
This should include moving the callback part of the MultiValueIndex and other MultiValueKey methods to Enso too, so that we avoid all Java-to-Enso callbacks in the Table library. |
Once we move the |
First steps towards this done in #6890 |
Closes #5227 # Important Notes - This lays first steps towards #6292 - we get pure Enso variants of MultiValueKey. - Another part refactors `LongStorage` into `AbstractLongStorage` allowing it to provide alternative implementations of the underlying storage, in our case `LongRangeStorage` generating the values ad-hoc and `LongConstantStorage` - currently unused but in the future it can be adapted to support constant columns (once we implement similar facilities for other types).
PR #7270 |
This is on hold and should be tackled as we work with the storage refactor. If we move to Apache Arrow this could be essential. |
There is "Table.order_by object" benchmark that creates a table consisting solely of
My
atoms with customMy_Comparator
and most of the time is spent in ObjectComparator.ensoCompare which calls back into Enso from Java across a boundary.The simplest, and quickest possible solution to speed up the performance is to move some of the functionality, that is currently implemented in
org.enso.base.table
Java package into Enso such that these kinds of callbacks are no longer necessary.After moving the functionality to Enso, it is possible that there may not be a need for a shared code between libs and runtime anymore (#5259).
The text was updated successfully, but these errors were encountered: