Skip to content

Investigate the usage/performance of the enumerator patterns shown in the Touki library #12072

Open
@baronfel

Description

@baronfel

@JeremyKuhne has a library called Touki that he uses to dive into various aspects of .NET/.NET Framework performance. One of his recent explorations has been a zero-allocation glob expander/enumerator that he wrote with the explicit intention of us being able to use it. It looks very promising:

Runtime repo (.NET 9) - **/*.cs

Method Mean Error StdDev Ratio Gen0 Gen1 Allocated Alloc Ratio
MSBuild 311.5 ms 3.58 ms 2.99 ms 1.00 1500.0000 500.0000 34.39 MB 1.00
GlobFileSystemEnumerator 183.0 ms 2.34 ms 2.19 ms 0.59 333.3333 - 9.74 MB 0.28

I don't have the numbers at hand, but it was even better in the more complex example he just showed me. The tests should show this.

It doesn't yet implement all of our feature set (e.g. Excludes), but it should be able to be added.

We should look at incorporating the methods from this library and comparing them to our existing implementation.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions