SI-7981 toSeq on immutable Map and Set return ArrayBuffer#4175
Merged
lrytz merged 1 commit intoscala:2.12.xfrom Dec 4, 2014
Merged
SI-7981 toSeq on immutable Map and Set return ArrayBuffer#4175lrytz merged 1 commit intoscala:2.12.xfrom
lrytz merged 1 commit intoscala:2.12.xfrom
Conversation
Switched to `Vector` for the default `MapLike`/`SetLike`, then back again in `mutable.MapLike`/`mutable.SetLike`. Preliminary performance testing indicates an across-the-board improvement due to cutting out a great deal of indirection. In the case of empty immutable maps or sets, the improvement is enormous: it quickly returns Vector.empty instead of jumping through all sorts of hoops to eventually create an empty `ArrayBuffer`. One possible downside is that `Vector` is pretty memory-hungry for small collections. Need to evalute this; rather than abandoning this change, it's probably better to make `Vector` smarter about small collections. Also fixed test with literal "ArrayBuffer" in output (`s/ArrayBuffer/Vector/g`).
Member
|
LGTM! |
lrytz
added a commit
that referenced
this pull request
Dec 4, 2014
SI-7981 toSeq on immutable Map and Set return ArrayBuffer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Switched to
Vectorfor the defaultMapLike/SetLike, then back again inmutable.MapLike/mutable.SetLike.Preliminary performance testing indicates an across-the-board improvement due to cutting out a great deal of indirection. In the case of empty immutable maps or sets, the improvement is enormous: it quickly returns Vector.empty instead of jumping through all sorts of hoops to eventually create an empty
ArrayBuffer.One possible downside is that
Vectoris pretty memory-hungry for small collections. Need to evalute this; rather than abandoning this change, it's probably better to makeVectorsmarter about small collections.