-
Notifications
You must be signed in to change notification settings - Fork 69
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
Optimize Source#read_until method #135
Merged
Merged
Conversation
This file contains 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
kou
reviewed
Jun 2, 2024
kou
changed the title
Optimized Source#read_until method
Optimize Source#read_until method
Jun 2, 2024
BTW, can we remove Line 50 in 3e3893d
I think that "dom" is slower than others because of it. And |
naitoh
force-pushed
the
optimized_read_until_method
branch
from
June 2, 2024 21:28
30017cc
to
875f4c6
Compare
## Benchmark ``` RUBYLIB= BUNDLER_ORIG_RUBYLIB= /Users/naitoh/.rbenv/versions/3.3.0/bin/ruby -v -S benchmark-driver /Users/naitoh/ghq/github.com/naitoh/rexml/benchmark/parse.yaml ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin22] Calculating ------------------------------------- before after before(YJIT) after(YJIT) dom 9.877 9.992 15.605 17.559 i/s - 100.000 times in 10.124592s 10.008017s 6.408031s 5.695167s sax 22.903 25.151 39.482 50.846 i/s - 100.000 times in 4.366300s 3.975922s 2.532822s 1.966706s pull 25.940 30.474 44.685 61.450 i/s - 100.000 times in 3.855070s 3.281511s 2.237879s 1.627346s stream 25.255 29.500 41.819 53.605 i/s - 100.000 times in 3.959539s 3.389825s 2.391256s 1.865505s Comparison: dom after(YJIT): 17.6 i/s before(YJIT): 15.6 i/s - 1.13x slower after: 10.0 i/s - 1.76x slower before: 9.9 i/s - 1.78x slower sax after(YJIT): 50.8 i/s before(YJIT): 39.5 i/s - 1.29x slower after: 25.2 i/s - 2.02x slower before: 22.9 i/s - 2.22x slower pull after(YJIT): 61.4 i/s before(YJIT): 44.7 i/s - 1.38x slower after: 30.5 i/s - 2.02x slower before: 25.9 i/s - 2.37x slower stream after(YJIT): 53.6 i/s before(YJIT): 41.8 i/s - 1.28x slower after: 29.5 i/s - 1.82x slower before: 25.3 i/s - 2.12x slower ``` - YJIT=ON : 1.13x - 1.38x faster - YJIT=OFF : 1.01x - 1.17x faster Co-authored-by: Sutou Kouhei <[email protected]>
naitoh
force-pushed
the
optimized_read_until_method
branch
from
June 2, 2024 21:44
875f4c6
to
e679cd4
Compare
Thanks! |
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.
Optimize
Source#read_until
method.Benchmark