Почему использование PrincipalSearcher будет быстрее, чем FindByIdentity ()?

У меня был этот код:

var context = new PrincipalContext( ContextType.Machine );
var user = UserPrincipal.FindByIdentity( context, username );

и это заняло около 2 -3 секунд. Мне рекомендовали переписать его, используя PrincipalSearcherкласс:

var context = new PrincipalContext( ContextType.Machine );
var user = new UserPrincipal(context);
user.SamAccountName = username;
var searcher = new PrincipalSearcher(user);
user = searcher.FindOne() as UserPrincipal;

и он работает менее чем за одну секунду -заметно быстрее. Человек, который посоветовал переписать, так же невежественен, как и я, почему он работает быстрее.

Почему это влияет на производительность?

14
задан sharptooth 3 August 2012 в 16:13
поделиться