Plugins 如何使用基准测试Microsoft Dynamics CRM 2016插件

Plugins 如何使用基准测试Microsoft Dynamics CRM 2016插件,plugins,performance-testing,execution-time,dynamics-crm-2016,Plugins,Performance Testing,Execution Time,Dynamics Crm 2016,我正在使用Dynamics CRM 2016,我已经开发了指定的插件。 在我的第一次测试中,我的进程停留了很长时间,以至于显示了超时异常 我优化了我的代码,重新调整了插件,然后进行了第二次测试。现在性能更好了,但我需要一些度量或静态数据 我被告知要使用基准测试,但我找不到任何使用文档。 请帮助我在我的Dynamics CRM 2016流程中集成基准测试,我在这里遇到了麻烦。不确定基准测试是什么,但您可以使用插件注册工具包在本地调试插件,或者您可以添加跟踪语句并提供自己的计时,以确定花费了这么长的

我正在使用Dynamics CRM 2016,我已经开发了指定的插件。
在我的第一次测试中,我的进程停留了很长时间,以至于显示了
超时异常

我优化了我的代码,重新调整了插件,然后进行了第二次测试。现在性能更好了,但我需要一些度量或静态数据 我被告知要使用基准测试,但我找不到任何使用文档。

请帮助我在我的Dynamics CRM 2016流程中集成基准测试,我在这里遇到了麻烦。

不确定基准测试是什么,但您可以使用插件注册工具包在本地调试插件,或者您可以添加跟踪语句并提供自己的计时,以确定花费了这么长的时间


我最好的猜测是你正在运行一个实体的更新,并更新实体,这反过来又导致你的插件再次触发,更新实体,这反过来又导致你的插件再次触发,更新实体。。。无限循环,然后由CRM在2分钟后关闭。

此外,除了Daryl所说的之外,还要确保不要一次提取那么多记录,因为每个查询都有允许的最大执行时间

尽可能使用服务器端分页。并将列/属性的数量限制到实际需要的最小值

如果您使用的是OnPrem,那么您可以使用SQL监视器,比如,找出您是否有锁、长查询等等

通过一些SQL执行计划魔法和耐心,您可以改善任何瓶颈,并获得查询执行时间

现在,如果这是一个在线CRM,您将更加受限于是否可以监控什么


祝你好运

在CRM 2016中,当您使用
ITracingService.Trace
时,输出写入
插件跟踪日志
实体中(在系统设置中激活此项,实体本身可在设置区域中找到)

您可以简单地使用跟踪来写一些东西(例如,
Execute
方法开头的“START”和结尾的“END”),然后查看插件跟踪日志实体(与所有实体一样),该实体具有
createdon
字段

另一方面,当需要对插件进行基准测试时,最有可能的做法是加快速度(如果插件运行需要2秒钟,基准测试就变得无关紧要)