AXL API - CS文件的处理时间非常长

只需要在这个方向上找到正确的方向。

我已经通过Cisco提供的说明创建了Cisco Unified Call Manager API,CUCM的API称为AXL。 它目前在我的C#WPF项目中运行得很好(我已经成功检索了一些手机数据),问题是API在一个长度为345K的单个CS文件中。当我尝试使用API​​(在编译之后)的第一个操作时,这会导致极长的延迟。

正如思科论坛上的一位用户建议:

您的问题很可能是.net框架生成xml序列化程序集所花费的时间。

     

在.net上使用AXL时预生成xml序列化程序集,您的第一个响应将更快。

我尝试使用主题中的用户大脑备份的说明预生成它。不幸的是,API的第一次使用仍然是大约45秒(它确实减少了大约一分钟)。我对Visual Studio中的调试工具并不十分了解,因此不确定如何检查导致问题的确切原因(但它看起来像是与生成XML相关的问题)。

我想知道是否有人可以推荐一种方法从CS文件中删除不必要的方法(99%的方法不会被使用),而不必手动重新创建它。任何类型的工具都可以从CS文件中提取/删除方法及其依赖项,这绝对是非常棒的。

0
45秒是非常长的,但它是一个神奇的数字。它是大多数计算机上的默认TCP/IP连接超时。使用SysInternals的TcpView实用程序查看谁被调用。
额外 作者 Hans Passant,
45秒是非常长的,但它是一个神奇的数字。它是大多数计算机上的默认TCP/IP连接超时。使用SysInternals的TcpView实用程序查看谁被调用。
额外 作者 Hans Passant,
嗯,它确实在某事上非常努力。当需要很长时间时,您可以使用简单的代码分析。如有必要,使用Debug> Break All并查看调用堆栈。
额外 作者 Hans Passant,
嗯,它确实在某事上非常努力。当需要很长时间时,您可以使用简单的代码分析。如有必要,使用Debug> Break All并查看调用堆栈。
额外 作者 Hans Passant,
嗯,它确实在某事上非常努力。当需要很长时间时,您可以使用简单的代码分析。如有必要,使用Debug> Break All并查看调用堆栈。
额外 作者 Hans Passant,
我有时间看看TcpView。不幸的是,我不认为这是一个超时问题,因为Visual Studio中的调试器显示了一堆垃圾收集,持续20%的CPU使用率和RAM增加: i.imgur.com/ydPbUVw.png 小缺口是最终返回结果的地方,CPU使用率也回落到空闲状态。返回的数据不多,并且相同代码的进一步运行只需要一秒钟。
额外 作者 Erik,
我有时间看看TcpView。不幸的是,我不认为这是一个超时问题,因为Visual Studio中的调试器显示了一堆垃圾收集,持续20%的CPU使用率和RAM增加: i.imgur.com/ydPbUVw.png 小缺口是最终返回结果的地方,CPU使用率也回落到空闲状态。返回的数据不多,并且相同代码的进一步运行只需要一秒钟。
额外 作者 Erik,

11 答案

削减AXL WSDL本身并重新编译可能是有意义的 - 如上所述,您不可能在整个模式附近使用它。

您应该能够只编辑AXLAPI.wsdl并删除除实际使用的项目之外的所有和元素。

0
额外

削减AXL WSDL本身并重新编译可能是有意义的 - 如上所述,您不可能在整个模式附近使用它。

您应该能够只编辑AXLAPI.wsdl并删除除实际使用的项目之外的所有和元素。

0
额外

削减AXL WSDL本身并重新编译可能是有意义的 - 如上所述,您不可能在整个模式附近使用它。

您应该能够只编辑AXLAPI.wsdl并删除除实际使用的项目之外的所有和元素。

0
额外

有一种方法可以检查您的方法是否已被使用,以及是否使用了多少次以及在何处查看此方法。

https://visualstudiomagazine.com/Blogs/Tool-Tracker/2014/12/Finding-Method-Property-Variable.aspx
0
额外
这很简洁,不幸的是我每个方法都会点击几百次,与仅复制方法相比,它会花费相同的时间,并且会为缺少的引用填写编译错误。
额外 作者 Erik,

有一种方法可以检查您的方法是否已被使用,以及是否使用了多少次以及在何处查看此方法。

https://visualstudiomagazine.com/Blogs/Tool-Tracker/2014/12/Finding-Method-Property-Variable.aspx
0
额外
这很简洁,不幸的是我每个方法都会点击几百次,与仅复制方法相比,它会花费相同的时间,并且会为缺少的引用填写编译错误。
额外 作者 Erik,

有一种方法可以检查您的方法是否已被使用,以及是否使用了多少次以及在何处查看此方法。

https://visualstudiomagazine.com/Blogs/Tool-Tracker/2014/12/Finding-Method-Property-Variable.aspx
0
额外
这很简洁,不幸的是我每个方法都会点击几百次,与仅复制方法相比,它会花费相同的时间,并且会为缺少的引用填写编译错误。
额外 作者 Erik,

有一种方法可以检查您的方法是否已被使用,以及是否使用了多少次以及在何处查看此方法。

https://visualstudiomagazine.com/Blogs/Tool-Tracker/2014/12/Finding-Method-Property-Variable.aspx
0
额外
这很简洁,不幸的是我每个方法都会点击几百次,与仅复制方法相比,它会花费相同的时间,并且会为缺少的引用填写编译错误。
额外 作者 Erik,

有同样的问题,延迟几乎无法使用。我发现的两件事几乎是即时结果。

  1. 不要使用WSDL。编写自己的方法来处理SOAP请求。花费时间并且容易出错,但结果几乎是即时的。

  2. 使用可处理大型文本文件的工具(如Notpad ++)打开WSDL生成的代码文件,并仅采用您需要的方法。这是我选择的方法,效果很好。

另外,我相信您可以使用executeSQLQuery方法并删除其余代码的很大一部分,但我还没有尝试过。我上面的每个方法都尝试过没有预生成xml序列化。我发现问题与生成的C#axl代码文件大小有关。

0
额外

有同样的问题,延迟几乎无法使用。我发现的两件事几乎是即时结果。

  1. 不要使用WSDL。编写自己的方法来处理SOAP请求。花费时间并且容易出错,但结果几乎是即时的。

  2. 使用可处理大型文本文件的工具(如Notpad ++)打开WSDL生成的代码文件,并仅采用您需要的方法。这是我选择的方法,效果很好。

另外,我相信您可以使用executeSQLQuery方法并删除其余代码的很大一部分,但我还没有尝试过。我上面的每个方法都尝试过没有预生成xml序列化。我发现问题与生成的C#axl代码文件大小有关。

0
额外

有同样的问题,延迟几乎无法使用。我发现的两件事几乎是即时结果。

  1. 不要使用WSDL。编写自己的方法来处理SOAP请求。花费时间并且容易出错,但结果几乎是即时的。

  2. 使用可处理大型文本文件的工具(如Notpad ++)打开WSDL生成的代码文件,并仅采用您需要的方法。这是我选择的方法,效果很好。

另外,我相信您可以使用executeSQLQuery方法并删除其余代码的很大一部分,但我还没有尝试过。我上面的每个方法都尝试过没有预生成xml序列化。我发现问题与生成的C#axl代码文件大小有关。

0
额外

有同样的问题,延迟几乎无法使用。我发现的两件事几乎是即时结果。

  1. 不要使用WSDL。编写自己的方法来处理SOAP请求。花费时间并且容易出错,但结果几乎是即时的。

  2. 使用可处理大型文本文件的工具(如Notpad ++)打开WSDL生成的代码文件,并仅采用您需要的方法。这是我选择的方法,效果很好。

另外,我相信您可以使用executeSQLQuery方法并删除其余代码的很大一部分,但我还没有尝试过。我上面的每个方法都尝试过没有预生成xml序列化。我发现问题与生成的C#axl代码文件大小有关。

0
额外