Skip to content

perf: improve case-insensitive string compare#77

Merged
mdsteele merged 1 commit intomdsteele:masterfrom
francisdb:perf/path_compare
Feb 2, 2026
Merged

perf: improve case-insensitive string compare#77
mdsteele merged 1 commit intomdsteele:masterfrom
francisdb:perf/path_compare

Conversation

@francisdb
Copy link
Contributor

Did some performance testing and this was a serious bottleneck for files with large amounts of streams.

master:

write many smaller streams/total/default
                        time:   [75.344 ms 75.390 ms 75.472 ms]
                        thrpt:  [828.12 KiB/s 829.02 KiB/s 829.53 KiB/s]

this pull request:

write many smaller streams/total/default
                        time:   [9.8702 ms 9.9169 ms 9.9802 ms]
                        thrpt:  [6.1156 MiB/s 6.1547 MiB/s 6.1838 MiB/s]
                 change:
                        time:   [−86.927% −86.889% −86.837%] (p = 0.00 < 0.05)
                        thrpt:  [+659.70% +662.75% +664.96%]
                        Performance has improved.

I have even more improvements coming but wanted this merged first.

Copy link
Owner

@mdsteele mdsteele left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for digging into this!

@francisdb
Copy link
Contributor Author

francisdb commented Jan 31, 2026

Thanks for the review. I can add a benchmark specifically for these calls if you want. But maybe that's a bit too targeted. The main benchmark already shows a huge regression on the ASCII part.

Anyway. I will double check the improvement on the non-ascii case as I am also a bit unsure if that change is worth it. -> NO, reverted.

@francisdb francisdb requested a review from mdsteele February 1, 2026 10:35
@francisdb francisdb mentioned this pull request Feb 1, 2026
Copy link
Owner

@mdsteele mdsteele left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks

@mdsteele mdsteele merged commit 504c595 into mdsteele:master Feb 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants