-
Notifications
You must be signed in to change notification settings - Fork 115
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
Support stdio in std/misc/json #739
Conversation
Obligatory benchmarks: Port
Buffered String IO
|
Some more benchmarks after tuning the bounds checking, using a very large file (125MB). Port
Buffered String IO
|
Optimistically unrolling the loop for mostly ascii decoding brings it within about 5%:
|
Interestingly, in the smaller file where there is less time spent in gc, the string buffered reader is toe to toe (within 1%) with the port reader:
|
I think I am done optimizing the beast; it's fast enough now. |
In both the small and large files, the time differential in the decoder is about the same as the differential in gc time. |
I am thinking that I will break this in two prs, once for strio and one for the json codecs; much easier to follow and reason about. |
I'll pile up some improvements I am planning for the bio interface as well; I will cherry pick those and pull to #728. |
deda067
to
6439acd
Compare
c42dadf
to
69358d6
Compare
0bf7c27
to
9d7bd68
Compare
We have a new entrant, the bio buffered reader/writer, which is the fastest of all for json parsing.
|
I think we got a winner here. |
Can you complete this PR? |
yes, soon; the base needs a bit of work. |
ccc867f
to
213ea16
Compare
rebased. |
This is ready. |
f177a95
to
17393eb
Compare
gsc is inlining peek-char, read-char, writer-char; we provide an option to do the same.
See #734.
Currently on top of #740; will rebase once it merges to master
Summary of changes:
TBD: