我们正在开发一个广泛使用 WCF Restful 服务的 Web 应用程序。在即将到来的圣诞节和新年前夜,我们预计流量会很大,管理层决定提高我们应用程序的性能。
但我不确定如何衡量每项服务的性能。
用于衡量给定 WCF 服务性能的标准方法、方法和工具是什么?
我们正在开发一个广泛使用 WCF Restful 服务的 Web 应用程序。在即将到来的圣诞节和新年前夜,我们预计流量会很大,管理层决定提高我们应用程序的性能。
但我不确定如何衡量每项服务的性能。
用于衡量给定 WCF 服务性能的标准方法、方法和工具是什么?
看看内置的性能计数器
您可以通过将其添加到您的配置来启用它们:
<configuration>
<system.serviceModel>
<diagnostics performanceCounters="All" />
</system.serviceModel>
</configuration>
重新启动您的服务。
启动应用程序“perfmon.exe”性能监视器,不要与 Windows 性能分析器混淆。
选择监控工具 -> 性能监控器
点击绿色加号按钮
选择 ServiceModelService 4.0.0.0 并找到您的实例。
选择您的实例并单击添加
选择确定
现在你有很多可用的信息。
1) 您可以使用 WCF 可扩展性来拦截 WCF 方法调用。
请参阅: IParameterInspector(简单分析器)
和
2)更通用的方法是使用“常规”拦截器。如果您为您的 Wcf 服务实现(或您需要测量性能的任何类)构建动态拦截器代理(我建议为此使用城堡动态代理或非常强大的即兴接口) - 您将能够使用秒表手动测量方法调用并根据需要使用一些额外的信息记录结果。
好的做法是使用依赖注入框架注册(切换)具体的接口实现。其中一些支持 WCF 集成工具(链接:Autofac、Windsor、Ninject)和动态代理(链接:Autofac、Windsor、Ninject)。