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

Revise Array Strategies #246

Open
smarr opened this issue Apr 26, 2018 · 0 comments
Open

Revise Array Strategies #246

smarr opened this issue Apr 26, 2018 · 0 comments
Labels
enhancement Improves the implementation with something noteworthy help wanted Would be great if you could help out here.

Comments

@smarr
Copy link
Owner

smarr commented Apr 26, 2018

The current array strategies are likely not optimal.
It might be useful to revise them to be more eager.

Currently, I am using a PartiallyEmptyArray strategy to avoid reallocating the underlying array for cases where we get first something primitive, and then an object after all.
Not sure how common the scenario is, but it misses optimization potential, for instance for

./debug -i -t1 -at -TF -sid -EG core-lib/Benchmarks/AsyncHarness.ns Savina.ForkJoinActorCreation 1000 0 40000

In that case, the result array in the PromiseGroup is always going to remain partial for most of the time, while it could specialize, or be a normal object array. Both options would likely be better to avoid the extra overhead of PartiallyEmptyArray.

To make this work properly, we however like need to revisit mementos/allocation site feedback.

@smarr smarr added enhancement Improves the implementation with something noteworthy help wanted Would be great if you could help out here. labels Apr 26, 2018
@smarr smarr added this to Open Issues in Completeness via automation Apr 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improves the implementation with something noteworthy help wanted Would be great if you could help out here.
Projects
No open projects
Completeness
  
Open Issues
Development

No branches or pull requests

1 participant