我使用JMeter来加载我的WebApi。每个用户100用户+ 4000循环。
性能图表

我有自己的自托管WebApi +微软统一容器.
在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
}如何优化统一容器的使用或哪里有问题?
发布于 2017-03-16 18:41:10
如果您的控制器依赖过多的对象进行构造,则可能需要一些时间来构建所有对象图。
对于每个访问控制器的请求,您将实例化所有的依赖项,即使根本不需要它们。
您可以尝试将一个大控制器拆分为较小的多个控制器,并重构对象图(依赖树),使其在每个控制器中保持最小。
https://stackoverflow.com/questions/41279075
复制相似问题