Timothy Choi
d282452e4c
[libc++] Avoid string reallocation in std::filesystem::path::lexically_relative
(#152964)
Improves runtime by around 20 to 40%. (1.3x to 1.7x)
```
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------------------------
BM_LexicallyRelative/small_path/2 -0.2111 -0.2082 229 181 228 180
BM_LexicallyRelative/small_path/4 -0.2579 -0.2550 455 338 452 337
BM_LexicallyRelative/small_path/8 -0.2643 -0.2616 844 621 838 619
BM_LexicallyRelative/small_path/16 -0.2582 -0.2556 1562 1158 1551 1155
BM_LexicallyRelative/small_path/32 -0.2518 -0.2496 3023 2262 3004 2254
BM_LexicallyRelative/small_path/64 -0.2806 -0.2775 6344 4564 6295 4549
BM_LexicallyRelative/small_path/128 -0.2165 -0.2137 11762 9216 11683 9186
BM_LexicallyRelative/small_path/256 -0.2672 -0.2645 24499 17953 24324 17891
BM_LexicallyRelative/large_path/2 -0.3268 -0.3236 426 287 422 285
BM_LexicallyRelative/large_path/4 -0.3274 -0.3248 734 494 729 492
BM_LexicallyRelative/large_path/8 -0.3586 -0.3560 1409 904 1399 901
BM_LexicallyRelative/large_path/16 -0.3978 -0.3951 2764 1665 2743 1659
BM_LexicallyRelative/large_path/32 -0.3934 -0.3908 5323 3229 5283 3218
BM_LexicallyRelative/large_path/64 -0.3629 -0.3605 10340 6587 10265 6564
BM_LexicallyRelative/large_path/128 -0.3450 -0.3423 19379 12694 19233 12649
BM_LexicallyRelative/large_path/256 -0.3097 -0.3054 36293 25052 35943 24965
```
---------
Co-authored-by: Nikolas Klauser <nikolasklauser@berlin.de>
2025-08-20 16:58:21 +02:00
..
2025-06-18 12:22:47 -04:00
2025-08-05 09:49:40 +02:00
2025-05-15 10:37:32 +02:00
2024-11-05 09:08:00 -05:00
2025-07-09 16:32:01 +02:00
2025-01-06 15:34:33 -05:00
2025-05-19 10:59:36 +02:00
2025-01-18 14:50:53 +00:00
2025-01-18 14:50:53 +00:00
2025-01-18 14:50:53 +00:00
2025-01-18 14:50:53 +00:00
2024-11-20 23:07:20 +01:00
2025-05-28 12:09:50 -04:00
2024-11-05 09:08:00 -05:00
2024-11-19 14:23:29 -08:00
2024-11-05 09:08:00 -05:00
2025-08-20 16:58:21 +02:00
2024-11-05 09:08:00 -05:00
2025-03-19 00:08:46 -04:00
2025-01-30 15:02:34 -05:00
2024-11-05 09:08:00 -05:00
2024-11-05 09:08:00 -05:00
2024-11-05 09:08:00 -05:00
2024-11-05 09:08:00 -05:00
2024-11-20 23:07:20 +01:00
2024-11-05 09:08:00 -05:00
2024-11-05 09:08:00 -05:00
2024-11-05 09:08:00 -05:00
2025-01-24 18:56:02 +01:00
2024-11-07 09:07:50 -05:00
2025-01-30 15:02:34 -05:00
2025-01-30 15:02:34 -05:00
2025-01-30 15:02:34 -05:00
2024-11-05 09:08:00 -05:00