У меня есть служба WCF, размещенная в IIS.После iisreset, когда я отправил первый запрос, сервису требуется 4-5 минут, чтобы вернуть ответ.К сожалению, время запуска (даже одноразовое) для меня неприемлемо.Большая часть времени находится внутри конструктора ServiceHost.Я попытался проанализировать реальные методы, используя время, используя YourKit.Оказывается, некоторые из внутренних методов CLR требуют времени.Я переопределил ServiceHostFactory и у меня есть некоторый пользовательский код, который я вызываю ПОСЛЕ вызова конструктора ServiceHost.
Я прикрепил вывод из YourKit.Первый столбец - это имя метода, за которым следует время.
System.ServiceModel.ServiceHost..ctor(Type, Uri[]) 143125 14
System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection) 143078 15
System.ServiceModel.ServiceHost.CreateDescription(IDictionary<String,System.ServiceModel.Description.ContractDescription>&) 143062 16
System.ServiceModel.Description.ContractDescription.GetContract(Type, Type) 143000 17
System.ServiceModel.Description.TypeLoader.LoadContractDescriptionHelper(Type, Type, Object) 143000 18
System.ServiceModel.Description.TypeLoader.AddBehaviors(ContractDescription, Type, Boolean, TypeLoader/ContractReflectionInfo) 142546 19
System.ServiceModel.Description.TypeLoader.ApplyServiceInheritance<IBehavior,TBehaviorCollection>(Type, TBehaviorCollection, TypeLoader/ServiceInheritanceCallback<IBehavior,TBehaviorCollection>) 142531 20
System.ServiceModel.Description.TypeLoader.AddBehaviorsAtOneScope<IBehavior,TBehaviorCollection>(Type, TBehaviorCollection, TypeLoader/ServiceInheritanceCallback<IBehavior,TBehaviorCollection>) 142531 21
System.ServiceModel.Description.TypeLoader/c__DisplayClass23_0.<AddBehaviors>b__0(Type, KeyedByTypeCollection<System.ServiceModel.Description.IOperationBehavior>) 142531 22
System.ServiceModel.Description.TypeLoader.GetIOperationBehaviorAttributesFromType(OperationDescription, Type, Type) 142515 23
System.RuntimeType.GetInterfaceMap(Type) 142296 24
System.RuntimeType.GetMethodBase(RuntimeType, RuntimeMethodHandleInternal) 97375 25
System.RuntimeType/RuntimeTypeCache/MemberInfoCache.AddMethod(RuntimeType, RuntimeMethodHandleInternal, RuntimeType/RuntimeTypeCache/CacheType) 95921 26
System.RuntimeType/RuntimeTypeCache/MemberInfoCache.Insert(T[]&, String, RuntimeType/MemberListType) 93812 27
System.RuntimeType/RuntimeTypeCache/MemberInfoCache.MergeWithGlobalList(T[]) 77625 28
System.Reflection.RuntimeMethodInfo.CacheEquals(Object) 7734 29
Что здесь занимает время?Что я могу сделать, чтобы улучшить это?