Improve performance by reducing allocations #17
Closed
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.
I suggest improving the performance by using
bytes.Buffer
. Creating muchstring
leads to such an overhead to both ns/op and allocations. This p/r also fixing too much json.Encoder for each map keys. Unlike #16, this p/r is safe in multiple goroutines. Note that this pr still depends on unsafe package but we can wait for fatih/color#124 to be resolved. Or if you don't like this changes, you can close.Performance difference is significant as follows.