Improve evaluation experience for large values #376
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.
The other day I had a cider-nrepl server started inside a project that doesn't have iced-nrepl in it. When I
:IcedConnect
to it, it sent back a 1,201,722-byte bencoded string (I'm not familiar with the nrepl protocol so have no idea what it is; it began with ad18:changed-namespaces
dict) which froze my nvim for 79 seconds... that's a throughput of 15KB/s and sounds a bit too slow. Profiling shows:So this PR improves that by
.encode()
and.decode()
.Profiling after the changes:
which is ~500x improvement. The code does look a little bit harder to deal with than before, but I still hope this can be useful to iced.