dotnet/runtime

Principal.FindByIdentity() method is extremely slow

Open

#34,598 opened on Apr 6, 2020

View on GitHub
 (10 comments) (0 reactions) (1 assignee)C# (5,445 forks)batch import
area-System.DirectoryServiceshelp wantedtenet-performance

Repository metrics

Stars
 (17,886 stars)
PR merge metrics
 (Avg merge 12d 11h) (661 merged PRs in 30d)

Description

In PowerShell repo we started porting Microsoft.PowerShell.LocalAccounts module to System.DirectoryServices.AccountManagement API (from p/invokes). We had to use workarounds because Principal.FindByIdentity() methods is extremely slow - up to 100x(!) vs Principal.PrincipalSearcher().

On my notebook Get-LocalUser name ported cmdlet takes 2.8 sec(!) vs 25 ms if a workaround is used.

Contributor guide