colblk: use regular slice in PrefixBytesIter #3872
Merged
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.
We currently store an
unsafe.Pointer
and separate length andcapacities. In many cases in the hot path we have to create a slice
using
unsafe.Slice
. Howeverunsafe.Slice
includes some checks thatwe don't need (see here).
In this change we switch to storing a regular slice and converting to
an
unsafe.Pointer
usingunsafe.SliceData
(which directly accessesthe pointer field). This improves performance, even while gaining
boundary checks when appending the suffix.