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

Investigate optimized implementations for single-length chains #162

Open
pineapplemachine opened this issue Nov 8, 2017 · 0 comments
Open
Labels
effort: moderate The issue will probably take a single contributor one or two days of work to resolve. meta: blocked The issue cannot be resolved right now, but it should be in the future. type: optimization The issue involves making existing functionality more performant.

Comments

@pineapplemachine
Copy link
Owner

In less jargony terms:

Higher is largely optimized for cases like seq.map(...).filter(...).something(...).array(), i.e. long chains of manipulation functions. However, this is only a subset of use cases. Many of the most common use cases will look more like seq.map(...).array(), i.e. a single-length chain.

It may be that detecting these cases and using a separate code path may produce significantly more performant code. However, whether this is actually true requires actual investigation. This task should be TODO after benchmark tools are in place.

If tests reveal that this is in fact a worthwhile optimization, then it should be implemented for the most common sequence types and possibly eventually for all types.

@pineapplemachine pineapplemachine added effort: moderate The issue will probably take a single contributor one or two days of work to resolve. type: optimization The issue involves making existing functionality more performant. labels Nov 8, 2017
@pineapplemachine pineapplemachine added the meta: blocked The issue cannot be resolved right now, but it should be in the future. label Nov 20, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort: moderate The issue will probably take a single contributor one or two days of work to resolve. meta: blocked The issue cannot be resolved right now, but it should be in the future. type: optimization The issue involves making existing functionality more performant.
Projects
None yet
Development

No branches or pull requests

1 participant