danielpclark / faster_path

Faster Pathname handling for Ruby written in Rust
MIT License
782 stars 33 forks source link

Optimize basename and dirname #132

Closed glebm closed 6 years ago

glebm commented 6 years ago

Before: Performance change for basename is -97.7% After replacing with bytes(): -34.5% After avoiding iteration for the edge check: -30.8% After returning &str instead of String: -25.8% After using memrchr instead of rfind: -20%

dirname also went from -7% to +7%

Refs #130

coveralls commented 6 years ago

Coverage Status

Coverage increased (+11.6%) to 87.978% when pulling f0d2fec513497bec8546b5f8f309c8d455cb2c90 on glebm:basename-edge-case into c62483047e6a5be4755828a261531ff83f6b6f2d on danielpclark:master.

coveralls commented 6 years ago

Coverage Status

Coverage increased (+11.6%) to 87.978% when pulling abb6dfa4f9adcc0dd4c9977b400de9be7f2da54c on glebm:basename-edge-case into c62483047e6a5be4755828a261531ff83f6b6f2d on danielpclark:master.

coveralls commented 6 years ago

Coverage Status

Coverage increased (+11.6%) to 87.978% when pulling abb6dfa4f9adcc0dd4c9977b400de9be7f2da54c on glebm:basename-edge-case into c62483047e6a5be4755828a261531ff83f6b6f2d on danielpclark:master.

danielpclark commented 6 years ago

For testing the ripple effects with mspec locally on your machine you can use rake mspec_full. Setting the TEST_MONKEYPATCHES flag with rake test will use the custom ripple effects test in this repo. Those aren't passing on TravisCI at the moment.

coveralls commented 6 years ago

Coverage Status

Coverage remained the same at 76.415% when pulling f8b94f9cc7f5cb48d02484cf66c08bef5a4406c9 on glebm:basename-edge-case into c62483047e6a5be4755828a261531ff83f6b6f2d on danielpclark:master.

glebm commented 6 years ago

Test fixed, should be good to merge.

coveralls commented 6 years ago

Coverage Status

Coverage remained the same at 76.415% when pulling 89495a896ae9aaef3070edb483d227812cffb718 on glebm:basename-edge-case into c62483047e6a5be4755828a261531ff83f6b6f2d on danielpclark:master.