Skip to content
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 String#rchop?() #15175

Merged
merged 1 commit into from
Nov 10, 2024

Conversation

HertzDevil
Copy link
Contributor

@HertzDevil HertzDevil commented Nov 8, 2024

This is similar to #15153.

  • Uses Char::Reader to read backwards from the end of the string. This does not require decoding the whole string, unlike calculating size - 1.
  • If the current string does not end with an ASCII character and its size is unknown, #single_byte_optimizable? traverses the entire string. This is no longer unnecessary because the above handles everything already.
  • If the current string's size is known, the new string's size can be derived from it.

@straight-shoota straight-shoota added this to the 1.15.0 milestone Nov 8, 2024
@straight-shoota straight-shoota merged commit caf57c2 into crystal-lang:master Nov 10, 2024
69 checks passed
@straight-shoota
Copy link
Member

I love that this is an optimization which even reduces code complexity ❤️

@HertzDevil HertzDevil deleted the perf/string-rchop branch November 10, 2024 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants