-
Notifications
You must be signed in to change notification settings - Fork 370
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
Latency comparison between transform and combine with grouped data frame #2516
Comments
Can you please check what happens on e.g. a data frame with 10^6 groups? (I do not have access to computer on which I can check it now). The discrepancy between |
Wow
EDIT: Nevermind, it's all allocation time
|
With a smaller number of rows we have
|
Yes - but it shows that there is no dynamic dispatch per group. We simply need to nail down the biggest source of compilation cost. |
It's coming from the
|
I think this last one is the most instructive because in theory there should be no compilation cost difference between the first and the second. I'm worried this has to do with |
you can annotate the return value in DataFramesMeta.jl to check, but I think it should not matter. |
Yeah that didn't help. This one is definitely mysterious. |
This is tested on
One of the reasons of the difference in inference is that for
yet - it is never called with this signature (I have made sure this signature is never used). So we spend 0.044 second out of 0.208 total seconds on inference of a method that never gets called with such a signature. We call a method with this signature:
(note that the signature is identical except the last argument). I have tried to do several things to disable compilation of unused method (doing
to
(to remove the @timholy - sorry for bothering you again, but do you see any method to solve the following issue? We have two methods:
now in calling code potentially values of both types |
Side note: I think we are compiling the anonymous function anew for every group, which I can't quite prove but seems consistent with, say
The text was updated successfully, but these errors were encountered: