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 comparison with function composition #7

Closed
Oblynx opened this issue Dec 7, 2020 · 2 comments
Closed

Performance comparison with function composition #7

Oblynx opened this issue Dec 7, 2020 · 2 comments

Comments

@Oblynx
Copy link

Oblynx commented Dec 7, 2020

@chain rewrites each expression to assign to temporary variables:

new_expr = Expr(Symbol("="), replacement, new_expr)

Can this lead to a performance tradeoff compared with plain-Julia function composition?
Especially in the case of broadcasting, I suppose this should break syntactic loop fusion, or not?

@jkrumbiegel
Copy link
Owner

I think it can, yes, but the things I made it for (Dataframe manipulation mostly) don't work with fused expressions anyway. That's because you can't express a groupby combine strategy as a kernel function iterating once over your original dataframe.

So yes, don't use this as a replacement for broadcasting syntax. To me it's also important that error messages are informative, which works better with the stepwise approach, so it's just a tradeoff

@Oblynx
Copy link
Author

Oblynx commented Dec 8, 2020

I totally agree and thanks a lot for your package 😊

I've been using lazy.jl @> so far, but I'm gonna give this a try because of the debugging syntax. I just wanted to clear out the inherent limitation.

@Oblynx Oblynx closed this as completed Dec 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants