【问题标题】:Profilling results - how to understand分析结果 - 如何理解
【发布时间】:2016-09-16 10:28:45
【问题描述】:

我使用 Unity IOC 对我的控制台应用程序进行了分析,并使用 HttpCLient 进行了很多调用。怎么理解?

函数名称、包含样本、排除样本、包含样本%、排除样本%

Microsoft.Practices.Unity.UnityContainer.Resolve                                    175 58  38.89   12.89
Microsoft.Practices.Unity.UnityContainer..ctor                                      29  29  6.44    6.44
System.Runtime.CompilerServices.AsyncTaskMethodBuilder1[System.DateTime].Start      36  13  8.00    2.89
Microsoft.Practices.Unity.UnityContainerExtensions.RegisterInstance                 9   9   2.00    2.00
System.Net.Http.HttpClientHandler..ctor                                             9   9   2.00    2.00
System.Net.Http.HttpMessageInvoker.Dispose                                          9   9   2.00    2.00
System.Activator.CreateInstance                                                     20  8   4.44    1.78
Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve   115 3   25.56   0.67

这意味着Microsoft.Practices.Unity.UnityContainer.Resolve 的包含样本是38,89,而独占样本是12,89?可以吗?不会太多吗?

【问题讨论】:

    标签: c# profiling


    【解决方案1】:

    “包含”是指“独占时间加上在所有被调用者中花费的时间”。 忘记“独家”的东西。 “包容性”是你付出的代价。

    上面写着UnityContainer.Resolve 花费了你 39% 的时间, Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve 花费了你 26%。 看起来第一个调用第二个,所以你不能把他们的时间加在一起。 如果你能避免调用所有这些东西,你将节省至少 40%,给你至少 100/60 或 1.67 或 67% 的加速

    顺便说一句,Unity 的东西虽然没有被完全弃用,但已不再维护。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 2017-07-10
      相关资源
      最近更新 更多