【发布时间】:2010-03-07 07:42:22
【问题描述】:
我对能够附加到 Windows 启动时启动的 .NET Windows 服务的分析器感兴趣。我尝试过 dotTrace、YourKit 和 AutomatedQA 分析器,但都没有运气。它们都将 Windows 服务显示为阴影,因此我无法分析我的服务。有人可以推荐一个工作分析器吗?
【问题讨论】:
我对能够附加到 Windows 启动时启动的 .NET Windows 服务的分析器感兴趣。我尝试过 dotTrace、YourKit 和 AutomatedQA 分析器,但都没有运气。它们都将 Windows 服务显示为阴影,因此我无法分析我的服务。有人可以推荐一个工作分析器吗?
【问题讨论】:
MemProfiler 也支持附加进程和配置文件服务。此外,您还可以实际导入 Windows 故障转储,如果您遇到内存不足异常,这可能会很有用。
另一种方法是从代码中调用分析器的 API。 (假设您的分析器支持)
【讨论】:
dot trace 有一个用于分析的 api。您最好的办法可能是从您的代码中调用 api。 EAP 版本(dot trace 4.0)似乎让我选择了一个正在运行的服务,但我不确定它是否正在启动一个新实例。
【讨论】:
您可以在 Visual Studio 或某些带有暂停按钮的 IDE 下运行 Windows 服务吗?如果是这样,那么this technique 会告诉你它在做什么以及你可以在哪里有效地优化它。 (它适用于任何环境,而不仅仅是 Linux。)
【讨论】:
请参阅my suggestion,了解如何将-foreground 开关添加到服务,以便更轻松地将其作为常规程序运行,从而更轻松地进行分析和调试。或者,在您的服务启动时添加一些代码来做一些忙碌的等待,直到满足某些条件(例如文件存在,或设置注册表值),这应该给您尽可能多的时间来附加分析器。
【讨论】: