如何开始使用WCF性能分析

ear*_*ing 12 performance wcf instrumentation profiling visual-studio-2010

我正在试图找出如何配置WCF服务,以便我可以识别任何瓶颈.
我已经在网上找到了一些信息,但没有任何假设没有先前的知识,这就是我所处的位置.

推荐什么免费工具?

- visual studio tools
- clrprofiler 
Run Code Online (Sandbox Code Playgroud)

以下是我发现使用vsperfcmd.exe来分析wcf服务的信息,根据这一点,它非常简单,但我需要填补从哪里开始的空白.我的假设是将VsPerfCLREnv和VsPerfCmd复制到托管我的wcf服务的服务器,并执行一些我不太确定的配置步骤.我也不太确定如何能够看到调用堆栈来评估每个调用的性能.

clrprofiler看起来有点简单.我假设我会将clrprofiler.exe复制到服务器,File->Profile Service并添加名称和启动/停止命令.(这是一个友好的名称或文件名或服务显示名称?)我假设我会对服务运行我的测试,我可以在clrprofiler中看到调用堆栈.这听起来不对吗?

[编辑]
我对测试网络并不感兴趣,因为这是在测试服务器上,这是一个大型wcf项目,上面有多个开发人员,我无法对项目进行更改,仅用于监控性能.我想专注于其中的实际方法的性能.

非常感谢任何入门帮助.

sof*_*eda 6

对于WCF来说,仅仅在通道堆栈上发生一系列事情(安全性,反序列化,格式化等)来分析代码是不够的.可视化的一种好方法是在详细级别使用WCF跟踪,然后使用服务跟踪查看器查看在消息处理的每个步骤中花费的时间.请阅读此处有关如何配置和使用WCF跟踪的信息.这是诊断WCF问题的最重要的事情.

当然,所有其他代码分析,数据库分析等也是有效的方法.您甚至可以使用SoapUI等工具来测试网络通信和客户端性能开销,以获得更多的端到端基准测试.


ear*_*ing 5

我知道有些人可能会发现有用的东西:

您甚至无法通过本地网络远程配置服务.探查器必须与服务在同一台计算机上运行.(这实际上花了我很长一段时间来弄清楚.对你来说可能很明显,但它从来没有拼写过,所以我一直试图这样做)

Visual Studio无法用于配置我的WCF服务.我能够从VS Profiler团队那里获得一些帮助,但是从来没有使用过工作解决方案.

VS连接和断开探测器的速度很慢,并经常检测我的二进制文件并使它们处于损坏状态.

.net二进制文件不需要进行检测,因为它们包含方法的元数据,这是视觉工作室一直在试图检测它们的二进制文件的奇怪之处.

我也尝试过VS独立分析器,但使用起来非常复杂,需要重新启动我的服务器.

我最终得到一个内部分析器工作(在从团队获得私有构建之后),所以我不确定有多少个分析器可以用于WCF服务.

我实际上设置了探查器来观察WAS服务,然后将我的其他二进制文件添加到探查器中.

如果已连接探查器,则在进行故障排除时,进程资源管理器非常有用.用它来查看inetinfo.exe环境