【问题标题】:Profiling a Windows Service that runs on startup分析在启动时运行的 Windows 服务
【发布时间】:2010-03-07 07:42:22
【问题描述】:

我对能够附加到 Windows 启动时启动的 .NET Windows 服务的分析器感兴趣。我尝试过 dotTrace、YourKit 和 AutomatedQA 分析器,但都没有运气。它们都将 Windows 服务显示为阴影,因此我无法分析我的服务。有人可以推荐一个工作分析器吗?

【问题讨论】:

    标签: windows-services profiler


    【解决方案1】:

    MemProfiler 也支持附加进程和配置文件服务。此外,您还可以实际导入 Windows 故障转储,如果您遇到内存不足异常,这可能会很有用。

    另一种方法是从代码中调用分析器的 API。 (假设您的分析器支持)

    【讨论】:

      【解决方案2】:

      dot trace 有一个用于分析的 api。您最好的办法可能是从您的代码中调用 api。 EAP 版本(dot trace 4.0)似乎让我选择了一个正在运行的服务,但我不确定它是否正在启动一个新实例。

      【讨论】:

        【解决方案3】:

        您可以在 Visual Studio 或某些带有暂停按钮的 IDE 下运行 Windows 服务吗?如果是这样,那么this technique 会告诉你它在做什么以及你可以在哪里有效地优化它。 (它适用于任何环境,而不仅仅是 Linux。)

        【讨论】:

          【解决方案4】:

          请参阅my suggestion,了解如何将-foreground 开关添加到服务,以便更轻松地将其作为常规程序运行,从而更轻松地进行分析和调试。或者,在您的服务启动时添加一些代码来做一些忙碌的等待,直到满足某些条件(例如文件存在,或设置注册表值),这应该给您尽可能多的时间来附加分析器。

          【讨论】:

            最近更新 更多