可以向我的应用程序添加 "offline profiling" 功能吗?

Possible to add "offline profiling" functionality to my application?

作为 Red Gate ANTS Performance Profiler 的长期用户,我目前正在寻找一种在非开发机器上进行分析的方法。

我们有相当大的 WinForms 应用程序用户群,该应用程序是用 .NET 4 编写的。

用户不时抱怨性能不佳。

由于我无法在每个客户的 PC 上购买和安装 ANTS,我正在考虑类似的事情:

  1. 向我使用 .NET Profiling API.
  2. 的应用程序添加一些魔法代码
  3. 在我的应用程序中提供一个开关以启用分析跟踪。
  4. 告诉用户激活开关。
  5. 让 API 记录性能 "events" 一段时间。
  6. 让客户把记录的日志寄给我。
  7. 在一些花哨的 GUI 中打开日志来分析热点。

我的问题:

是否可以通过某种方式使用 .NET 分析 API 来包含离线性能热点记录以便稍后分析?

更新 1:

我刚刚找到“dotTrace Perfomance API”,其中介绍了术语自我分析,这似乎正是我想要的形式。

正在查看文章……

是的,dotTrace API 似乎是最好的解决方案。 实际上,您可以使用与 JetBrains 用于 ReSharper 的方法相同的方法。 ReSharper 的帮助菜单中有选项 - Profile Visual Studio。这个菜单的作用是 运行 自我分析。当用户遇到减速时,JB 支持人员会要求他使用此菜单并重现该问题。然后将收集的性能快照发送到 JetBrains。