Improve path_rel performance#520
Open
orgadish wants to merge 6 commits into
Open
Conversation
1. Hoisting split of start out of loop. 2. Splitting all paths in a single vectorized call outside the loop. 3. Passing the split list into an internal version of path_common (`path_common_parts`) that takes the components, rather than having to split again. 4. The internal `path_common_parts` uses vectorized calls rather than R loops.
This file contains hidden or 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
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.
#519
Improved
path_relperformance by:path_split(start)out of the loop entirely.path_split(path)in a single vectorized call outside the R loop.path_common_partsthat takes the components, rather than having to split again, and then passing the vectorized-split parts directly.path_common_partsuses vectorized calls rather than R loops.pathinput topath_rel.Performance Improvement:
Tests pass:
Benchmark
Created on 2026-07-04 with reprex v2.1.1