Repository navigation
<filesystem>: Improve symlink_status performance - #5071
Stephan T. Lavavej (StephanTLavavej) merged 9 commits into
Conversation
3527b58 to
ce3f023
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
|
Thanks! On my system (5950X, 24H2, Samsung SSD 980 PRO), I observe much less of a performance improvement, but still major: 21126 ns => 10098 ns, for a speedup of 2.1x. |
Thank you too! |
<filesystem>: Improve symlink_status performance
|
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
|
Thanks again, and congratulations on your first microsoft/STL commit! 😻 🎉 💾 This change is expected to ship in VS 2022 17.13 Preview 3. |
_Get_any_status(__Path, __std_fs_stats_flags::_Attributes | __std_fs_stats_flags::_Reparse_tag)calls to many WinAPI functions for regular files or directories. It callsGetFileAttributesEx+CreateFile+GetFileInformationByHandleEx(FileBasicInfo)butGetFileAttributesExis enough to get all needed data if it is known that a file is not a reparse point.This problem affects
symlink_statusperformance.Benchmark
symlink_statusresults before changes:Benchmark
symlink_statusresults after changes: