【发布时间】:2017-03-17 02:41:10
【问题描述】:
我使用 JMeter 来加载我的 WebApi。 100 个用户 + 每个用户 4000 个循环。
- 简单 OWIN:平均 5-10 毫秒,最大响应 200 毫秒 II。欧文
- Microsoft Unity 容器:平均 15 毫秒,最大响应 9000 毫秒。
性能图表
我有 OWIN 自托管 WebApi + Microsoft 统一容器。
我使用 VS 性能资源管理器调查了热门路径:
public IDependencyScope BeginScope()
{
var childContainer = Container.CreateChildContainer(); //47% CPU
return new UnityDependencyScope(childContainer);
}
public object GetService(Type serviceType)
{
if (typeof(IHttpController).IsAssignableFrom(serviceType))
{
return Container.Resolve(serviceType); //35% CPU
}
try
{
return Container.Resolve(serviceType);
}
catch
{
return null;
}
}
public void Dispose()
{
Container.Dispose(); //16%CPU
}
如何优化 Unity 容器的使用或问题出在哪里?
【问题讨论】:
标签: performance asp.net-web-api owin unity-container